Remember?

J

jacob navia

Why did you start programming?

Wasn't it for the fun of it?

I am sure you did not start because of the need to apply your software engineering principles...

For me most of the fun was the curiosity of getting a machine do whatever I wanted to. This creative
side, that was so tightly coupled with building powerful yet simple systems.

Powerful, yet simple. It was the opposite of the gargantuan systems of today. No C# just C, a
language that captured the essence of the machine with a few powerful abstractions.

Today, simplicity is looked down upon, forgotten, together with the fun of understanding the machine
and its quirks. Software should be machine independent, language independent, programmer
independent, the dream of software writing software, multiplying the salary of each programmer
into thousands:

PRODUCTIVITY!

There is no time to waste in learning, crafting software from the ground up. There is no time to
polish it, so it is shipped when it barely runs, if at all.

Do not get me wrong. I am not against software engineering, or against trying to increase
productivity. But what I am missing in many programming environments now is the fun.

The C language is seen by many as a thing of the past. Or worst, as all the concentrated errors
done in the past. No generics, no objects no classes, no nothing. Nothing comes pre-cooked,
ready to swallow, ready to use. You have to build it yourself.

For some, this is horrible, for others like me, it is precisely the greatest freedom. There is no
language corset where you have to fit in. You can do whatever you want.

The container library uses C but draws from OO and generic programming. Its objective is to prove
that C can be used in a high level undertaking, and that C remains (precisely because its
simplicity) a good base to build such a library. The thesis of this library is that with a simple
mechanism (the function table) you can build very flexible interfaces, that can be adapted by
anyone to any purpose.

I have posted a few containers already, and I will post later a simple template mechanism that will
allow the library to be generic without being too complex, without outgrowing your mind, without
killing the fun of hacking, programming, letting your mind create new things.
 
D

D Yuniskis

Richard said:
Well in my eyes that report is wrong. There is no way in hell there are
as many lines of C code being churned out as say Java or .net or maybe
even python,c++ or php at this stage.

TIOBE index is regarded as inaccurate by some. And a rudimentary look into HOW it is
generated might prompt you to agree.

I've not looked at the report so can't comment on specifics.
But, I would tend to agree (with it).

Consider, most Java apps are reasonably short. Ditto for python
and PHP.

OTOH, it is not uncommon to see tens of megabytes of C source
in a project. Even a *small* project will typically be a MB
or more. I doubt most "web apps" (java, PHP) come close to
that.

<shrug>
 
D

D Yuniskis

Richard said:
Size of large legacy cobweb apps has nothing to do with it.

Millions of small to medium projects == lots of lines and programmers.


These tens of megabytes are not being actively maintained in many
cases.

Linux, {Open,Free,Net}BSD, gcc, PostgreSQL, a few *thousand* large
open source applications, etc.

And that doesn't begin to address "commercial" products.
You're also way of the mark since a LOT of web apps sit on top of HUGE
maintained code bases/frameworks such as drupal etc.

The source code for my NetBSD system is just over 2GB (not counting
any "applications"). The *compressed* sources for the apps on
that same system are 22GB (figure 2X-4X expansion).

I imagine the Linux distros are similar sizes.
Common sense needs to also be applied : look at the job vacancies. There

No, what you want to look at is job *growth* AND productivity
figures. Maintaining a web site can be a perpetual job -- yet
the application can be small or just a continual rehash of
the same old code ("gee, lets replace all our explicit links
with a script that looks up the correct link in a database
and then serves the page...")
are very, very few actively maintained C projects outside of embedded
system (which, yes, obviously has a large requirement - but lets keep
that in perspective).

The embedded market produces far more applications.
Java, .Net, PHP, etc. all run on desktops. That
*desktop* machine probably has a dozen or more embedded
devices *in* it. None of them are written in Java... :>

And, that doesn't count the dozen processors in my
car (wanna bet the hi-fi wasn't written in Java?),
furnace, air conditioner, television, VCR, DVD player,
cell phone, telephone answering machine, refrigerator,
etc.

Each time I have to "do the math", I find myself underestimating
by at least an order of magnitude.

There is a *lot* of code being written in C.
 
M

Mark Bluemel

Why did you start programming?

Wasn't it for the fun of it?

Nope. I'd graduated with a poor quality irrelevant degree and needed
to earn a living for myself and my wife to be.

I was lucky enough to find I had an aptitude for the job, and enjoyed
it, but I didn't go into it for fun.
 
J

jacob navia

Mark Bluemel a écrit :
Nope. I'd graduated with a poor quality irrelevant degree and needed
to earn a living for myself and my wife to be.

I was lucky enough to find I had an aptitude for the job, and enjoyed
it, but I didn't go into it for fun.

.... and you will stay all your life working in a job that doesn't please you?

Hardly...

Better believe that:

"I was lucky enough to find I had an aptitude for the job, and enjoyed it..."

Yes, you enjoyed it.

What I wanted to stress is that this fun with creating systems, creating software
shouldn't be considered as something irrelevant. It is the core of people's motivation.
 
M

Mark Bluemel

Mark Bluemel a écrit :




... and you will stay all your life working in a job that doesn't please you?

Many people have to. Not everyone has the luxury to pick and choose.
 
N

Nick Keighley

Why did you start programming?

I liked the idea of a machine that could be told to do things.

Wasn't it for the fun of it?
yes


I am sure you did not start because of the need to apply your software engineering principles...

but I discovered applying software engineering principals made me a
better programmer.

For me most of the fun was the curiosity of getting a machine do whatever I wanted to.
yes


This creative
side, that was so tightly coupled with building powerful yet simple systems.

well it's nice if they're simple but complex systesm can be
interesting too. Is your compiler simple?

Powerful, yet simple. It was the opposite of the gargantuan systems of today. No C# just C, a
language that captured the essence of the machine with a few powerful abstractions.

is C# a big language? It's a while since I looked at it.

Today, simplicity is looked down upon, forgotten,

not by me or I think by manyt programmers.

together with the fun of understanding the machine
and its quirks.

I'm not convincedc this *is* fun except in a rather warped way.

Software should be machine independent,

it seems like a good goal if you can have it. Why throw it away if you
don't have to?

language independent,

I'm less keen on this. You've got to express your ideas in some sort
of notation. And if you want a machine to execute it then you need an
executable formal notation or programming language. I express ideas in
pseudo-code but its still pretty close to a programming language. Why
would you want language independance and who has advocated this? (and
if you say "the regulars" I'll ask for names and cites).

programmer independent,

I've no idea what this means. Program generation? AI? If there is no
programmer who writes the code. If a man speaks and there is no woman
to hear him, is he still wrong?
the dream of software writing software, multiplying the salary of each programmer
into thousands:

PRODUCTIVITY!

ah yes. Programs to write programs can save you work. Do you use yacc?
Doesn't this write code?

There is no time to waste in learning, crafting software from the ground up. There is no time to
polish it, so it is shipped when it barely runs, if at all.

Do not get me wrong. I am not against software engineering,

you seem to have some funny ideas about it though. On my planet SE is
*not* about shipping crap. The idea is to produce something that
actually works.
 
T

TonyMc

jacob navia said:
I have posted a few containers already, and I will post later a simple
template mechanism that will allow the library to be generic without
being too complex, without outgrowing your mind, without killing the
fun of hacking, programming, letting your mind create new things.

Hi Jacob,

thanks for the memories... Yes, I program in C because I enjoy it. It
is "only" a hobby for me (which means I treat it seriously and try to
learn the language, its idioms and how to implement algorithms well).
But for that very reason I have not been particularly interested in
following your threads about a C container library. When I need a
container I always need it to contain specific types of things, and it
is often precisely because it is fun to develop such structures that I
don't mind doing it for the specific case. On the contrary, it is part
of the fun of programming in C.

I think you might have hit on one reason why your efforts with the
container library have seemingly met with less than enthusiasm here.
Those who need genericity and the sort of productivity you seem to think
takes the fun out of programming [1] will either have written such
libraries already (in C) or will choose to use C++ or something else for
that part of the application. Those who enjoy rolling their own will do
so. My guess is that you are really enjoying developing that containers
library, and that's great - may you continue to enjoy them. But when
others choose to do the same and enjoy the project too, please don't
think that reflects a lack of interest in C and its future. Some of us
enjoy C precisely because it allows us to build things up from very
simple building blocks without having to follow someone else's idea of
how it should be done.

[1] I think I would dispute that. C++ is fun too, but in a different
way. Perl and Ruby are fun too, but also in different ways. Forth is
even simpler than C and that's fun too. I don't think "productivity" is
the relevant measure, but rather the availability of useful and
understandable abstractions. Depending on the problem I want to solve
or investigate, different levels of abstraction become appropriate both
to the problem and to the fun of solving the problem or creating
something. C definitely has a niche, and for some kinds of programming
that is what I love about it. C++ occupies a different niche, and
that's fine too. Your library suggestions seem to start from the idea
that C should not have a niche but be used everywhere for everything,
and I just don't see that.

Best,
Tony
 
J

jacob navia

Nick Keighley a écrit :
I'm not convincedc this *is* fun except in a rather warped way.

C is a language that lets you approach the machine as it really is.
Obviously it is not for people that want to program for some "abstract machine"
that hides the complexities of real hardware behind a thick layer of software.
 
R

Richard Tobin

C is a language that lets you approach the machine as it really is.
Obviously it is not for people that want to program for some
"abstract machine" that hides the complexities of real hardware
behind a thick layer of software.

I think the point of C is that it lets you write reasonably
high-level, portable code, while *also* letting you have access to the
low-level details of the machine. If all you wanted was the latter,
assembler would be quite adequate.

-- Richard
 
D

Dik T. Winter

> Why did you start programming?

Simple, it fascinated me. I saw an advertrisement for a course on Algol 60,
and as that was at that time almost the only possibility to get access to
a computer, I followed it. (Yes, at that time computers were not
commonplace, there was none at the university for instance.)
 
D

Dik T. Winter

> (e-mail address removed)-berlin.de (Stefan Ram) writes: .... ....
> Well in my eyes that report is wrong. There is no way in hell there are
> as many lines of C code being churned out as say Java or .net or maybe
> even python,c++ or php at this stage.

If you had read that page you would have read that it is *not* about number
of lines of code.
 
B

bartc

D Yuniskis said:
Richard wrote:
Linux, {Open,Free,Net}BSD, gcc, PostgreSQL, a few *thousand* large
open source applications, etc.

Can a C compiler count as an application written in C? (I mean, if the only
C program that existed was a C compiler...)
And that doesn't begin to address "commercial" products.


The source code for my NetBSD system is just over 2GB (not counting
any "applications"). The *compressed* sources for the apps on
that same system are 22GB (figure 2X-4X expansion).

Let's say that's 50GB uncompressed. Any let's say an average line of source
is 25-50 characters.

So that's 1 to 2 billion lines of code. Printed out at 60 lines per page, on
single-sided 80gsm paper, that's a stack of code 1 to 2 miles high!

And apparently, all on just one machine?

I think you may have added a few zeros somewhere...

(And if that amount of C source does exist, then someone is using totally
the wrong language for writing applications.)
 
J

jacob navia

bartc a écrit :
I think you may have added a few zeros somewhere...

(And if that amount of C source does exist, then someone is using
totally the wrong language for writing applications.)

Look. This is comp.lang.c

Somehow it has become the latest fashion to despise the C language in the
few forums that are left.

You program in C. If you do not like this language please just
move on. Nobody forces you.

But if you stay, try to be positive OK?

Thanks in advance for your understanding

jacob
 
B

bartc

jacob navia said:
bartc a écrit :

Look. This is comp.lang.c

Somehow it has become the latest fashion to despise the C language in the
few forums that are left.

You program in C. If you do not like this language please just
move on. Nobody forces you.
But if you stay, try to be positive OK?

It's a question of using an appropriate mix of languages.

I know however that you like to use C for near 100% of tasks, so you will
not agree.
 
I

Ian Collins

Richard said:
True. All based on updated apps. Mostly done in C probably.

But how many jobs do you see advertised for these programmers? Its a
small niche market.

Small? I manage a team of 50 C developers and consult to another double
that size. I live in a small city an even smaller country and even
here, I'd estimate half of the programming jobs are embedded C.

Every bit of microprocessor related hardware made has drivers written in C.
Yes there is.

But no where near as much as in Java, PHP or probably C++ these days.

As I said : look at the jobs available ....

I don't have any solid proof, but I know form my local market C
programmers tend to stay with a company for a long time. I do see more
..net jobs advertised here, but I also know there are a lot more C
programmers in employment than there are .net programmers.

Job ads aren't a true indicator of the sate of the market. We employ a
lot of staff through our own networks.
 
P

Phil Carmody

Walter Banks said:
After a very long time there is as much of a thrill when it all comes together now as it was when I
first started programming.

I think I am hooked but I pull fewer all nighters now

I have a nasty feeling that I'm one of the first guys in the
world who tried to recompile their kernel on a nokia n900.
I didn't realise that a full kernel build would take up as
much as a whole gig, but after addressing that, the poor
little bastard can build its own kernel:
http://fatphil.org/images/n900-kernel-build2.png
And the clock was accurate in that screenshot. And yes, my g/f
wasn't happy about me doing the final link whilst in bed beside
her. (Even though she was snoring at the time.)

Sometimes you have to just continue until things work.

Phil
 
R

Richard Bos

bartc said:
It's a question of using an appropriate mix of languages.

Well, of course! And we all know that the appropriate mix of languages
is C, mixed with selected features from C++...

Richard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,062
Latest member
OrderKetozenseACV

Latest Threads

Top