473,836 Members | 1,586 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
109 4598
Le 31-05-2006, Richard Heathfield <in*****@invali d.invalid> a écrit*:
Marc Boyer said:
Le 31-05-2006, Richard Heathfield <in*****@invali d.invalid> a écrit :
Le 31-05-2006, Richard Heathfield <in*****@invali d.invalid> a écrit :
> [Any] C programmer having trouble understanding the code would probably
> have trouble understanding "Winnie the Pooh".

What is your definition of "C programmer" ?

Someone who understands C.


All the C99 standard ?


C90 is still C. Anyone who understands C90 sufficiently well is not likely
to struggle with C99.


I agree.
When did you met C beginner last time ?

Have you read this newsgroup recently?


I read very quicky...


...and type too quicky too.


because I gives you contradiction or because I ask you questions ?
I do not arge that C++ is better than C, neither the opposite.


Good, because the answer to the question depends on what one means by
"better".


An is also highly dependent of the context. I guess the same man
is able to find one tool better in a situation and another tool in
another situation.
But I desagree with "simpler is better".


Good, because it depends on what you mean by "simpler".


"simpler" <=> "more simple" ?
You wrote you have a "simple" C solution.
And the OP also use word like "simple" and "complex". I was assuming
there was a 'well known' meaning.

Marc Boyer
May 31 '06 #61
Marc Boyer said:
> When did you met C beginner last time ?

Have you read this newsgroup recently?

I read very quicky...
...and type too quicky too.


because I gives you contradiction or because I ask you questions ?


Neither.
But I desagree with "simpler is better".


Good, because it depends on what you mean by "simpler".


"simpler" <=> "more simple" ?


Yes, but what do you mean by "more simple"?
You wrote you have a "simple" C solution.
I do - but what do /I/ mean by "simple"?
And the OP also use word like "simple" and "complex". I was assuming
there was a 'well known' meaning.


There is a well-established dictionary meaning, but programming has a habit
of placing words under considerable strain. "Simple" is a good example.

We have already seen that we can code a simple task ("read a line") in 90+
lines of C (as someone posted recently elsetopic here in clc), or in 23
lines of C of which only about four actually do very much (as I explained
upthread).

Clearly, C is simpler than C.

We can code the task even more simply in C++, by calling the C solution from
C++.

Clearly, C++ is simpler than C.

We can code the task even more simply in C, because we don't need the extern
nonsense.

Clearly, C is simpler than C++.

Clearly, the meaning of "simple" is not simple.

--
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 31 '06 #62
Richard Heathfield <in*****@invali d.invalid> a écrit*:
Marc Boyer said:
>> When did you met C beginner last time ?
>
> Have you read this newsgroup recently?

I read very quicky...

...and type too quicky too.
because I gives you contradiction or because I ask you questions ?


Neither.


So why ?

[SNIP long discussion on 'simple'] Clearly, the meaning of "simple" is not simple.


OK. In french we say "tout ça pour ça" but I do not know the
correct translation in english. Perhaps could I say "Much Ado About
Nothing".

Marc Boyer
May 31 '06 #63

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.

Perhaps for guys who program as a hobby.
But a *professional* has to know things deeply, and use the best tools.
For instance, I deem that any professional programmer (independently of
his job), must know several programming languages (for instance, one or
two assembly languages, C, C++, python, perl and php).

Similarly, if I would not want that physic engineers chose to not learn
physics because it is "too complex".

Yeah, I think that it is necessary to learn several languages... Even
assembly, even if you'll never ever write a single line of assembly...
For the same reason a doctor (even a general practicionner) has to
learn biology and biochemestry, even if he will never really "use"
biochemestry.
Learning assembly is at least useful for debugging (and learning
biochemestry can be useful for understanding diseases).

A professional programmer must be a specialist.

And, for becoming a specialist, several years are required... Learning
C++ features (even deeply, reading the C++03 standard) can be done in a
few weeks.
Of course, once you have finished to read the C++ standard, if you want
to be a professional, you'll have to program things during several
years, in order to really learn programming paradigms.

I deem that a professional C programmer which programs large
applications, should learn C++ paradigms (and paradigms from other
languages too), perhaps by first learning other languages, and then,
come back to C, and write code in C using these paradigms (because C
allows them, even if it is error-prone and painful for the fingers
typing on the keyboard).

Unfortunately, there are not many *professionals* in developers team
nowadays, which explains that most desktop applications s**ks nowadays
(for instance, they use 100 times more memory and CPU than they
should).
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.

First having a simplier refence manual, doesn't mean that the code will
be simplier : If you really want to program correctly with C:
You'll have to dynamically allocate a lot (all) of resources, and check
*all* allocation failures, and handle them properly without *any*
memory leak...
For doing that C++ is much easier to use (thanks to RAII and
exceptions).
Furthermore RAII and exceptions are far easier to handle without bugs
in C++.

If simplier was always better, BCPL or B would be a better language
than C.

Note also that : "Simpler on the paper" doesn't mean "simpler for the
programmer".
For instance, smalltalk has no operator precedences... It is far
simpiler for the implementation, and seems to be simplier in the
reference manual...
But, the reality is that it is a pain for programmers... And that it is
really error prone.

In what sense, malloc/realloc/free is simplier than std::string for
string handling?

May 31 '06 #64
SuperKoko a écrit :
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.


First having a simplier refence manual, doesn't mean that the code will
be simplier : If you really want to program correctly with C:
You'll have to dynamically allocate a lot (all) of resources, and check
*all* allocation failures, and handle them properly without *any*
memory leak...
For doing that C++ is much easier to use (thanks to RAII and
exceptions).
Furthermore RAII and exceptions are far easier to handle without bugs
in C++.

Mmmm... that is easy to do in C if you use Boehms Weiser garbage
collector.

Many C compilers offer it, for instance gcc, lcc-win32 and others.

Even C++ people can benefit from it, no kidding! :-)

May 31 '06 #65
Richard Bos wrote:
"Vladimir Oka" <no****@btopenw orld.com> wrote:
Richard Heathfield wrote:

Anyone C programmer having trouble understanding the code would
probably have trouble understanding "Winnie the Pooh".


You underestimate the depths of Winnie the Pooh!


Especially in the original Latin.


I'll be you like the Latin, Mr. "Cow".


Brian
May 31 '06 #66
jacob navia wrote:
[...]

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

<OT style="all my responses are OT, not just this part">
IMHO the "learning curve" associated with C++ has more to do with
learning the precepts of Object-Oriented Programming than the language
itself. If you have a solid understanding of OOP, then a lot of the
"complexity " of C++ disappears.
</OT>
C has less surprises, less to learn, and uses FAR LESS MEMORY.
C uses far less memory? If you mean a program written in C will compile
to a smaller executable than a comparable program written in C++, then
I can't believe that claim at all. Whether or not you can consistently
get your C compiler to spit out smaller executables than your C++
compiler for a similar piece of source code is more likely because the
C compiler generated better object code than the C++ compiler. Hell, if
I compile a C++ program to run in legacy 16-bit mode on my x86, I'll
bet it'll be smaller than the corresponding C program written to run on
32-bit Windows, by virtue of the fact that sizeof int will likely be 2
bytes smaller in the 16-bit version, *and* the fact that I can compile
the 16-bit version to a flat binary file, whereas the Windows version
will have to be packaged into the Portable Executable (EXE) file
format, which will invariably bloat the resulting program with EXE
headers, relocation tables, etc. My point is that the size of compiled
programs in either C or C++ (or any language) is more dependent upon

a) how well the compiler can generate object code for the given
language, including how well it can optimize the code
b) which machine you're compiling on and/or the target OS. E.g. if a
particular CPU has a single machine instruction equivalent to
printf("hello world\n") (let's assume stdout goes to a terminal on this
platform), then a "hello world" program you compile on that system will
probably be much smaller than it would be processors that don't support
the PRINT HELLO WORLD instruction.

As for "C has less surprises", I have two words: undefined behavior ;-)
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.

Well, I don't usually sit down at my computer, ready to program, and
then wait 15 minutes while I "load" a page-for-page copy of the latest
C Standard into my brain. You learn a language by using it, not by
memorizing it.

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!


Again, I don't think C++ is overly complex. I think it *can* be. That
is, the programmer is the one who controls how complex his code is - it
is fairly easy to obfuscate C++ code, but there are ways to
de-obfuscate it as well (such as the "using [namespace];" directive to
prevent code from being polluted with namespace qualifiers). The core
language isn't really that hard to grasp, especially if you already
have a knowledge of C and, as I mentioned, you understand the basics of
OOP.

Mike S

May 31 '06 #67
Richard Heathfield wrote:
and carry on checking my C code with my C++ compiler.

That approach is likely to bite you one day, if it hasn't silently done so
already.

No, don't forget this is embedded code, so it gets built for the target
with a C compiler, I just use C++ on the host for development and testing.

I just looked back through the code I first used this approach on (back
in '95) and there were three reasons for doing it:

1) lots of smelly code and resultant bugs caused by abuse of enums.

2) lots of smelly code and bugs caused by inappropriate casts. C++
static_cast is a powerful tool for both highlighting (easy to grep for)
and checking casts.

3) I wanted to use mock objects for the hardware the device drivers were
controlling. This is probably why I still do this for new code, it
enables simple tricks that are hard (if not down right impossible) to do
in C like:

#include <inttypes.h>

#if defined __cplusplus
struct SomeRegister
{
SomeRegister& operator=( uint32_t ) {
//do stuff on setting register
}

operator uint32_t() {
//do stuff on reading register
}
};
#else
typedef uint32_t SomeRegister;
#endif

typedef struct
{
SomeRegister reg;
} Registers;

int main(void)
{
Registers registers;

registers.reg = 42;

uint32_t n = registers.reg;
}

--
Ian Collins.
May 31 '06 #68
On 30 May 2006 20:13:55 -0700, "Old Wolf" <ol*****@inspir e.net.nz>
wrote:
Tomás wrote:
I was writing brilliant C++ programs by the time I was fifteen... surely it
can't be *that* complicated.


Like this one?
http://groups.google.com/group/comp....0e199bc9ec8204

Or this masterpiece?
http://groups.google.com/group/comp....04fb0b9bd9c0a1


Good catch Old Wolf,
Considering that Tomás says Jkop is a different person, You may have
find his long lost twin brother Alternatively you may have provided
important clues for his true identity, in case he has suffers from
severe amnesia. In either case this is a pretty fantastic discovery!

Check:
Both are cracy about using "monkeys":
http://groups.google.com/groups/sear...iLvmctw04UvwT&

and both favor 'k' as variable:
http://groups.google.com/groups/sear...iLvmctw04UvwT&

and Blah classes:
http://groups.google.com/groups/sear...9iLvmctw04UvwT

Amazingly both Jkop and Tomás sign their messages by putting a dash
before their name ( -Jkop / -Tomás )
http://groups.google.com/groups/sear...9iLvmctw04UvwT
http://groups.google.com/groups/sear...9iLvmctw04UvwT

Ok, the last one could be purely a culture thing since Reverse DNS
puts them both to to Ireland [City: Dublin]

that according to IP (83.70.62.165 ) taken from the first message by
Tomás written:
http://groups.google.com/group/comp....b?dmode=source

and also according to Jkops last message IP (83.70.59.143) and his
own admission
http://groups.google.com/group/comp....c?dmode=source
http://groups.google.com/group/comp....01d92538b1dcf3

Juuso
May 31 '06 #69
Juuso Hukkanen posted:

Good catch Old Wolf,

What is this... a witch hunt?!

This is absolutely ridiculous! There are people who post to newsgroups
under a pseudonym (Old Wolf for example), and there are people who post
using their full name.

You're trying to weed out someone who has changed psuedonym... that's quite
admirable -- I've a jig-saw puzzle in my cupboard if you'd like to play
with that later.

Both are cracy about using "monkeys":

"monkey" is a well-known choice for an arbitrary word. (It's also the prime
example of a word which ends in "y" but yet doesn't change to "ies" to form
the plural).

and both favor 'k' as variable:

"k" is used throughout the science community significantly to signify a
constant. It's been plastered throughout every Physics book I've ever read.

and Blah classes:

If "Blah" isn't an arbitrary name, I don't know what is.

Amazingly both Jkop and Tomás sign their messages by putting a dash
before their name ( -Jkop / -Tomás )

Oh by Jesus then it simply MUST be me.

Ok, the last one could be purely a culture thing since Reverse DNS
puts them both to to Ireland [City: Dublin]

Last time I checked there were about 1.5 million people in Dublin.

Lift my DNA off one of his posts and then I'll admit it was me. Also, you
get the secret, mystery, sparkly prize!

If that will be all, can we get back to discussing the C programming
language?

-Tomás
Jun 1 '06 #70

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

Similar topics

226
12750
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
3673
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 might competitors? > Has C++ become a dying language? > What is the future of C++? As I posted...
34
2476
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 a better, more controllable language.
35
3366
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 chess program, lots of numeric code using STL, and tons of other applications in C++, (even firmware...
2
1803
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 attempting to retrofit a more semantic structure on pages, I have been trying to reduce the...
6
14458
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 not sure how much user interaction scripting allows. Does java scripting allow buttons, textfields...
190
8229
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 the internet bubble, I had 80+ students per semester in my C++ course. Now I am fortunate to have...
0
9668
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10546
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10589
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 most users, this new feature is actually very convenient. If you want to control the update process,...
0
9371
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 launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7790
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 instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6978
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 into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5825
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
4015
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3112
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.