473,569 Members | 2,489 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Simplicity has a future

A recent article on CNN described the problem that phone makers
are facing.

(http://www.cnn.com/2006/TECH/biztech....ap/index.html)

Most people are rejecting the new "supercharg ed"
cell phones because they just do not want to learn the
incredible complex menus and stuff that you need to use them.

The new phones are just too complicated to use.

The same thing is happening with programming languages too.

Extremey complicated languages like C++ are loosing ground to more
simpler languages. People get tired of trying to learn a
monster language where learning the language gets in the way
of the basic needs of the user. You use a language to do something,
and when you have to learn too much stuff or the learning curve
is too steep, a simpler language wins.

This means for C, that C (contrary to what many people think)
has a good opportunity to attract new users. Being a much
simpler language it is the language of choice when you want something
that works without a lot of effort.

This could explain why the download rate of the lcc-win32 compiler
that offers only C stays since several years high. In this month
we have a mean download rate of around 300-400 per day at one of
our sites, probably more at the main downloading site.
May 30 '06 #1
109 4468
jacob navia posted:

Extremey complicated languages like C++ are loosing ground to more
simpler languages.

I'd expect such an argument from a Java programmer, or a C# programmer,
but it doesn't make much sense coming from a C programmer. A lot of C
programs can be simplified by injecting some C++ into them. Just look at
"string" and "vector".

I'm a C++ programmer. I know it inside out. I can make it do what I want
it to do. I made the choice to learn more "fancy" features, and it has
paid off.

The reason why C++ has waned in popularity is because way way WAY more
people are trying to program now than a few years ago. Intelligent and
intellectual people are in the minority, and therefore dumbed-down
languages like Java, Visual Basic and C# have seen a growth in
popularity.

Make a distinction between "mickey-mouse programmer" and "real
programmer" and then you'll see a meaningful trend.

I see C++ as a superset of C. Why would I restrict myself to only using C
feaures?
It's very well known that C compilers are far more common than C++
compilers, so it's much easier to find a C compiler for a given platform
than a C++ compiler. If I can't find a decent C++ compiler for a
platform, then I'll write C. Otherwise, I'll write C++.
-Tomás
May 30 '06 #2

jacob navia wrote:
This means for C, that C (contrary to what many people think)
has a good opportunity to attract new users. Being a much
simpler language it is the language of choice when you want something
that works without a lot of effort.


I never had any doubts that C *is* attracting new users and will
continue to do so.
I go to linuxforums and everytime some newbie asks what programming
language
to start with a lot of people suggest C. Same thing happened on a
non-computer
related message board.

People like C for many reasons one of which is that they enjoy
programming "close
to the metal" even if it's not required by the application. The only
way I see C disappearing
is that a drastic change in computer hardware happens.

May 30 '06 #3
sp****@gmail.co m said:
The only way I see C disappearing
is that a drastic change in computer hardware happens.


The C language, being so amenable to portable programming, is well-placed to
meet the challenge of such a change.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
May 30 '06 #4
jacob navia <ja***@jacob.re mcomp.fr> writes:
[snip]
This means for C, that C (contrary to what many people think)
has a good opportunity to attract new users. Being a much
simpler language it is the language of choice when you want something
that works without a lot of effort.
I wouldn't call C "simple". A simple language wouldn't require so
much care and expertise to avoid serious pitfalls such as the many
cases of undefined behavior.

Your "contrary to what many people think" remark seems to be typical
of your peristent misunderstandin g of the opinions of most other
people in this newsgroup.
This could explain why the download rate of the lcc-win32 compiler
that offers only C stays since several years high. In this month
we have a mean download rate of around 300-400 per day at one of
our sites, probably more at the main downloading site.


lcc-win32 does not offer "only C". It apparently does support
standard C (I don't know how well), but it also supports some other
language consisting of C with a number of extensions. There might be
some interesting point to make about the popularity of your extended C
language vs. another extended C language called "C++", but this
wouldn't be the place to make that point.

--
Keith Thompson (The_Other_Keit h) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
May 30 '06 #5
Tomás wrote:
jacob navia posted:
Extremey complicated languages like C++ are loosing ground to more
simpler languages.
I'd expect such an argument from a Java programmer, or a C# programmer,
but it doesn't make much sense coming from a C programmer. A lot of C
programs can be simplified by injecting some C++ into them. Just look at
"string" and "vector".

I'm a C++ programmer. I know it inside out. I can make it do what I want
it to do. I made the choice to learn more "fancy" features, and it has
paid off.

The reason why C++ has waned in popularity is because way way WAY more
people are trying to program now than a few years ago. Intelligent and
intellectual people are in the minority, and therefore dumbed-down
languages like Java, Visual Basic and C# have seen a growth in
popularity.

Perhaps, though Java may also be successful because it is less a
language than a development and deployment framework. This makes it
possible for a company like mine to support such a wide variety of
platforms.

C++ (or C, for that matter) does not have to preclude easy porting to
new platforms, but it sure is easy for a code base to become less and
less portable over time. Even adding another Unix platform was more
than a modest undertaking, and was actually a "port". Now we make sure
the small amount of JNI and native code we have builds, and the
classfiles that make up the bulk of the world go right to QA. A
developer does a "port" simply by being a tech lead for QA if anything
comes up. It rarely does. So, a "port" is often hours and days now,
instead of weeks or months.

We sort of were bitten by C++ during the transition stage when the
language was still being standardized. All those different compilers
(this was before GCC was available/reasonable on all the platforms we
needed) on all those different platforms was a real pain to maintain.
Condition compilation ruled the day, and it was not fun. To this day I
still have nightmares about all the contortions necessary to get STL
based code to build cleanly on different Unix platforms.

There may be issues between platform VMs of the same version, but this
is pretty rare. By and large maintenance has been much easier with Java.

All these issues are in many senses removed from the language itself.
The large apps I work on now are best treated as a collection of
middleware and frameworks than source code half the time (though we
write plenty of code).
Make a distinction between "mickey-mouse programmer" and "real
programmer" and then you'll see a meaningful trend.

I thought real programmers programmed in hex, on a seven-segment readout
with a keypad?
May 30 '06 #6
Tomás wrote:
The reason why C++ has waned in popularity is because way way WAY more
people are trying to program now than a few years ago. Intelligent and
intellectual people are in the minority, and therefore dumbed-down
languages like Java, Visual Basic and C# have seen a growth in
popularity.

Make a distinction between "mickey-mouse programmer" and "real
programmer" and then you'll see a meaningful trend.


Look Tomas,
you should restrain from insulting other people just because they refuse
to learn all the complexities of C++.

No. They aren't "mickey-mouse" programmers but real programmers that
want to use a programming language to do a specific JOB. Period.

If you read the article that I quoted in CNN, people do not reject the
"modern" hypercomplex phones just because they are lazy but because they
want to USE a phone for what is intended: communicate by phone with
other people. PERIOD.

C++, because of the very high learning curve, stays in the way of people
doing the JOB they want to do with the language.

C has less surprises, less to learn, and uses FAR LESS MEMORY.

Not only RAM, that nobody cares too much, but HUMAN MEMORY, a far more
precious resource than RAM!

The memory footprint of a language is the amount of data your brain
must load into your neural network to be able to use that language
efficiently.

The memory footprint of C++ is enormous. C++ specifications run down for
pages and pages, and basically, it is impossible for a human mind
to follow the complexities of name resolution without using the
debugger. The C++ name resolution for overloaded operators runs for
several pages of specifications and imply a topological sort of the
class hierarchy. Which human mind can do that without having a machine
(compiler) at hand?

People that reject a language where they can't possibly know what
are they calling, aren't stupid. The contrary is true. They just
follow the KISS principle!

KEEP IT SIMPLE!

jacob
jacob
May 30 '06 #7
Keith Thompson a écrit :
jacob navia <ja***@jacob.re mcomp.fr> writes:
[snip]
This means for C, that C (contrary to what many people think)
has a good opportunity to attract new users. Being a much
simpler language it is the language of choice when you want something
that works without a lot of effort.

I wouldn't call C "simple". A simple language wouldn't require so
much care and expertise to avoid serious pitfalls such as the many
cases of undefined behavior.


*Any* language has its "gotchas".. . C's aren't specially difficult
to see with a little bit of care. Granted, it is a language
that is close to the machine, and supposes more care when
programming than Java or C#.

Your "contrary to what many people think" remark seems to be typical
of your peristent misunderstandin g of the opinions of most other
people in this newsgroup.

I do not see why you feel that this was directed against people
in this group...

:-)

I was speaking against many people that see C as a dead language
or kind of low level assembler that doesn't even earn the
name "high level language". For instance, just read
Betrand Meyer and ist Object Oriented Software construction book.

This could explain why the download rate of the lcc-win32 compiler
that offers only C stays since several years high. In this month
we have a mean download rate of around 300-400 per day at one of
our sites, probably more at the main downloading site.

lcc-win32 does not offer "only C". It apparently does support
standard C (I don't know how well), but it also supports some other
language consisting of C with a number of extensions. There might be
some interesting point to make about the popularity of your extended C
language vs. another extended C language called "C++", but this
wouldn't be the place to make that point.

Maybe, but most people are attracted by the easy of use. I do
not think people are attracted just by the language extensions. You see,
the compiler is very simple, the IDE also, to make a project you select
a bunch of files in the IDE and that is it.

EASY OF USE. This is a fundamental point that we forget too often when
adding that gazillon options...

I have resisted to make the IDE more complicated. It
has a user interface unchanged since windows 3.1.

Like the language it supports, everything is small, straightforward .
You do not have a XXX "Studio", the IDE is just 800K, complete with
spelling checker, software metrics, and many other options that
"advanced" IDEs do not offer.

Simple but powerful, as the language it supports.
May 30 '06 #8

jacob navia wrote:
A recent article on CNN described the problem that phone makers
are facing.

(http://www.cnn.com/2006/TECH/biztech....ap/index.html)

Most people are rejecting the new "supercharg ed"
cell phones because they just do not want to learn the
incredible complex menus and stuff that you need to use them.

The new phones are just too complicated to use.

The same thing is happening with programming languages too.

Extremey complicated languages like C++ are loosing ground to more
simpler languages. People get tired of trying to learn a
monster language where learning the language gets in the way
of the basic needs of the user. You use a language to do something,
and when you have to learn too much stuff or the learning curve
is too steep, a simpler language wins.
If you try to program advanced software in C, you'll see that the
complexity which is not in the C language, will be found in the C code.
At a higher maintainibility cost than if it was programmed in a
language supporting advanced features.
In fact, learning C or C++ depends on what you want to do.
If you want to write device drivers, you'll see that most features of
C++ are not really possible to use. You can still write the program in
C++, but you will write it in a C-style way.
So, if you only want to write device drivers, you don't have to learn
C++. You can learn C only.
But if you want to write applications which require runtime
polymorphism, or benefit from generic containers, or simply need to use
a lot of object-based libraries (such as bignums libraries) or expose a
lot of objects (not necessarily with inheritance), or even simply uses
so much dynamic allocation that RAII + exceptions is absolutely
necessary for a correct program (I mean a program which doesn't crash
even if any constructor fails), then C++ is much safer, and easier to
write.
Try to write OOP with GObject in C, and you'll see that C++ would be
better for that task.

This means for C, that C (contrary to what many people think)
has a good opportunity to attract new users. Being a much
simpler language it is the language of choice when you want something
that works without a lot of effort.
Yes, simplicity attracts people.
As far as people use only simple things, they are happy, and there have
no reason of learning a complex language.
But when they write complex things, they realize that a complex
language in fact helps a lot, and simplifies their program.

wrote jacob navia: The memory footprint of C++ is enormous. C++ specifications run down for
pages and pages, and basically, it is impossible for a human mind
to follow the complexities of name resolution without using the
debugger.

Perhaps your mind.
But my mind knows pretty well the C++ standard.

And, if you read the C99 standard, you'll see that C is not so simple
that it seems to be (even if it is simplier than C++).

For instance, there are common pitfalls, if you think that C is too
close to the machine.
You have to learn the C standard if you want to write portable
software, otherwise you may use casts in a non-portable way... Read the
C standard, and you'll see that there are lots of undefined behaviors
which seems to work perfectly fine on common platforms (x86, PowerPC),
but might fail on weird platforms.

May 30 '06 #9

"Richard Heathfield" <in*****@invali d.invalid> wrote
sp****@gmail.co m said:
The only way I see C disappearing
is that a drastic change in computer hardware happens.


The C language, being so amenable to portable programming, is well-placed
to
meet the challenge of such a change.

The C language is, the C standard isn't.

For instance say I have invented a very cheap analogue memory. It will store
256 levels of resolution with enough accuracy to make it acceptable for
everyday data, but there is just a slight chance of a shift from one level
to another.
But we can get round this with a bit of AI. If a word reads "exactky" the AI
will correct it to "exactly". Or buy "1* eggs" becomes "buy 12 eggs",
because of course I am not stupid enough to use an encoding where digits are
contiguous and "buy 12 eggs" could slip undetectable to "buy 11 eggs".
Oh whoops. there goes the standard.
--
Buy my book 12 Common Atheist Arguments (refuted)
$1.25 download or $7.20 paper, available www.lulu.com/bgy1mm

May 30 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

226
12379
by: Stephen C. Waterbury | last post by:
This seems like it ought to work, according to the description of reduce(), but it doesn't. Is this a bug, or am I missing something? Python 2.3.2 (#1, Oct 20 2003, 01:04:35) on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> d1 = {'a':1} >>> d2 = {'b':2} >>> d3 = {'c':3}
47
3614
by: David Eng | last post by:
> For many years now enterprise business application development has > been the core area for the use of C++. > Today a significant share to this segment has already been lost to > SUN's Java technology and with MS now abandoning C++ in favour if its > proprietery .NET and C# technology, how long can we except C++ to hold > on against these...
34
2433
by: JKop | last post by:
The other day I had to write some code to manipulate a Micrsoft Excel spreadsheet. I had to write it in Visual Basic, which I haven't used for about 5 years. Anyway, it slowly started creeping back to me and I began to understand terms like: ByVal (by value) ByRef (by reference) I remember how excited I was switching to C++, working with...
35
3299
by: GTO | last post by:
I do not believe that C# is the future of C++. I also do not believe that adding two thousand new library functions to the standard library is the future of C++. But what is the future of C++? Is it as good as a programming language can get? Like so many of you, I programmed speech recognizers, image recognition systems, a portion of a...
2
1796
by: Eric Lindsay | last post by:
Most of the web pages whose source I look at have a very elaborate structure (even apart from any massive use of Javascript), often with div in div in div layered up to six deep, lots of classes and spans all over. I usually can't follow exactly why they are so elaborate (I know some are containers to avoid browser bugs). In addition to...
6
14435
by: rohayre | last post by:
Im a long time java developer and actually have never done anything with java scripting. I'd like to write a short simple script for calculating a date in the future based on today's date and a letter. Can I use javascripting to create a webpage to allow a user to enter a letter and then click a button to find a future calendar date? I'm just...
190
7944
by: blangela | last post by:
If you had asked me 5 years ago about the future of C++, I would have told you that its future was assured for many years to come. Recently, I have been starting to wonder. I have been teaching C++ at a local polytechnical school here in Vancouver, Canada for approximately 8 years. Six years ago, at the height (or should I say volume?) of...
0
7926
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
1
7678
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
7982
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
0
6286
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5514
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5222
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3644
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2116
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1226
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.