PDA

View Full Version : higher level of the language = better ??


healychan
February 18th, 2006, 10:41 AM
Hello all,

Many of my fellows say they hate C but like Java. Also the survey in this forum shows that people like higher level language such as Python, Java.

The top three in the survey are Python, C++, then Java. One of thier common features is that they are OO language(although C++ is not pure OO language).

If people like those language because of OO, I can understand and also agree that OO is really powerful. But if you like those language just because they are more like human language, I think you are wrong. Imagine one day someone make an IDE that can generates code automatically, the readability of the code is no longer a problem. In fact, some of the UML CASE tools already can generates code from your UML diagram. When that day comes, many programmer will lose their job.

Apart from that, I think the equation "higher level language = better" is not always true. For examples, the powerful kernel you are using was written in C and assembler; the Gnome was written in C; some Java lib such as awt was written in C as well. Without those lower level languages done all the hard work for you, you will never program easily.

Because of that people fear C, many C programmer earn big money now. Some of my friends they couldn't find a job because they learn only higher level language. There are many jobs about C in the market with good pay.

You may think that I am a big fans of C but I am not. I am just telling the truth that you should know a bit C and assembler even you don't like it. I am sure you will benifit from it.

Finally, please leave a message to talk about your favour language with some reasons.

Bye Bye;)

mostwanted
February 18th, 2006, 10:54 AM
Hello all,

Many of my fellows say they hate C but like Java. Also the survey in this forum shows that people like higher level language such as Python, Java.

The top three in the survey are Python, C++, then Java. One of thier common features is that they are OO language(although C++ is not pure OO language).

If people like those language because of OO, I can understand and also agree that OO is really powerful. But if you like those language just because they are more like human language, I think you are wrong. Imagine one day someone make an IDE that can generates code automatically, the readability of the code is no longer a problem. In fact, some of the UML CASE tools already can generates code from your UML diagram. When that day comes, many programmer will lose their job.

So basically what you're saying is that we should stop improving ourselves because improving ourselves could ease the burden laid on the shoulders of programmers? Why would doing the work seven times over because it creates more jobs be a better alternative? I don't get it.

Apart from that, I think the equation "higher level language = better" is not always true. For examples, the powerful kernel you are using was written in C and assembler; the Gnome was written in C; some Java lib such as awt was written in C as well. Without those lower level languages do all the hard work for you, you will never program easily.

Because of that people fear C, many C programmer earn big money now. Some of my friends they couldn't find a job because they learn only higher level language. There are many jobs about C in the market with good pay.

You may think that I am a big fans of C but I am not. I am just telling the truth that you should know a bit C and assembler even you don't like it. I am sure you will benifit from it.

Finally, please leave a message to talk about your favour language with some reasons.

Bye Bye;)

Yes, obviously we can't use scripting languages for everything and it's given that stuff like kernels and the lowest levels of graphics can't really be done in JIT-compiled or interpreted languages right now, and they're not going to be any time in the future.

My favourite language is Ruby. I also like C# because it resembles, in my opinion, a cleaner version of Java. C is also nice, but it's too much work for applications and lacks important stuff like exception handling. Many things are a drag in C.

healychan
February 18th, 2006, 11:11 AM
So basically what you're saying is that we should stop improving ourselves because improving ourselves could ease the burden laid on the shoulders of programmers? Why would doing the work seven times over because it creates more jobs be a better alternative? I don't get it.

I am not saying that we should not improve ourselves. I mean that if people learn higher level language just because they are easy to read, easy to learn, they will be out some day. Because I believe one day people will make an IDE which generates code easily. When that day comes, we need nobody to do coding.

I saw many of my fellows they graduate with the ability of coding only. But they still call themselves a programmer.:confused:

LordHunter317
February 18th, 2006, 01:04 PM
The top three in the survey are Python, C++, then Java. One of thier common features is that they are OO language(although C++ is not pure OO language).Neither is Python. I could make the argument that Python is the least OO of the 3, because a lot of it's features are clearly functional in nature: lambda functions, list comprehensions, native tuples, etc.

In fact, some of the UML CASE tools already can generates code from your UML diagram. When that day comes, many programmer will lose their job.Rational Rose has been around forever and the sector isn't shrinking except from the .COM boom. UML generates your framework, at most.

And it still can't help you design it. Just like SPICE can simulate my circuit for me, it cam't build it or do the design work for me.

the Gnome was written in C;And in terms of API, GTK+, GLIB and friends are about the worse examples you can have.

some Java lib such as awt was written in C as well.No, it isn't. Tiny bits are where it must interface with the native GUI. That's it.

Without those lower level languages done all the hard work for you, you will never program easily.So? Why should I, as a programmer, care?

Because of that people fear C, many C programmer earn big money now.Good C programmers are always in demand in the embedded systems market.

Some of my friends they couldn't find a job because they learn only higher level language.Java still demands more jobs than any other language, with C# rapidly catching up.

I mean that if people learn higher level language just because they are easy to read, easy to learn, they will be out some day.No, they won't. See above. You're simply not in touch with the industry.

Because I believe one day people will make an IDE which generates code easily. When that day comes, we need nobody to do coding.Until it can do actual design work, that won't reduce jobs substantially.

scourge
February 18th, 2006, 02:20 PM
I am not saying that we should not improve ourselves. I mean that if people learn higher level language just because they are easy to read, easy to learn, they will be out some day. Because I believe one day people will make an IDE which generates code easily. When that day comes, we need nobody to do coding.

A computer program which could replace a programmer would have to be one seriously intelligent piece of software, something that can pass the Touring test. If I ever see a machine capable of doing that I'll be happy to let it do my coding work.

LordHunter317
February 18th, 2006, 02:31 PM
A computer program which could replace a programmer would have to be one seriously intelligent piece of software, something that can pass the Touring test.It would have to be substantially smarter than that.

Most humans can't get design decisions correct.

scourge
February 19th, 2006, 09:53 AM
It would have to be substantially smarter than that.

Most humans can't get design decisions correct.

Well of course. But once a machine passes the Touring test, it won't take long before it gets smarter than most programmers.

healychan
February 19th, 2006, 11:07 AM
The IDE I am talking about doesn't need much intelligence. It won't design the software for you but provides a very high level interface which generates code for you easily.

Perhaps I should make a better example. All right, let''s imagine some day we have an innovate language and it's syntax is likes pseudo code. The level of the language is very high and hence, we no longer need any people to coding. Anyway, this is not my main concern.

The reason I open this thread is I saw so many people they are afraid of lower level language because they find it differcult. They also believe the job of a programmer is coding. As a programmer, we should equip ourselves and should be able to produce high quality software regardless of what language we use. The skills include software design, software quality assurance, project management, software testing....etc

Do you agree with me ???

healychan
February 19th, 2006, 11:08 AM
Most humans can't get design decisions correct.
Could you give some example of wrong design decision ??

LordHunter317
February 19th, 2006, 12:48 PM
Well of course. But once a machine passes the Touring test, it won't take long before it gets smarter than most programmers.Yes, it will. Do even know what the Touring[sic] test is, or what i means in the field of AI?

It's not even remotely close to a gold standard of human intelligence. All it means is that we have a clever AI that can fool a human in conversation.

That says nothing about design skills. An orator is infinitely more eloquent than me, but he can't design software.

Could you give some example of wrong design decision ??OTTOMH, Swing's JTable and ASP.NET's entire membership/role provider framework. I can elaborate if you want, or you can look them up online (the ASP.NET custom RoleProvider is very telling).

kvorion
February 19th, 2006, 04:56 PM
Well, I guess a piece of AI that can replace a programmer in creating software has to come a long way beyond simply passing the Turing test.

Turing designed the test simply to create a benchmark where a rational agent could act human enough to fool a human interrogator. I believe software engineering is much more than that :)

thumper
February 19th, 2006, 05:02 PM
I am not saying that we should not improve ourselves. I mean that if people learn higher level language just because they are easy to read, easy to learn, they will be out some day. Because I believe one day people will make an IDE which generates code easily. When that day comes, we need nobody to do coding.

Unfortunately (or perhaps fortunately for us programmers) manager types have been spouting automatic code generation meaning programmers out of a job since the 50s.

And even since this has been possible, programmers aren't out of jobs :)

I saw many of my fellows they graduate with the ability of coding only. But they still call themselves a programmer.:confused:
Coding is not the same as problem solving, or design even.

jpkotta
February 19th, 2006, 05:54 PM
As an electrical engineering grad student, who has had a few real world jobs and seen the kind of coding that happens in industry, I can tell you C is not going anywhere soon. There are plenty of embedded systems for which C++ is too bloated to use. On of my professors (who once worked at GE) tells us of a control system implemented in assembly, because the C code was too large, though that was quite a while ago. And in the most extreme example, I took a SCSI short course from a guy who thought that assembly code was too bloated (I still can't understand that one). He was brillant but weird.

But for applications...I say it's the API, not the language. And knowing how to program, not how to code.

LordHunter317
February 19th, 2006, 06:14 PM
And in the most extreme example, I took a SCSI short course from a guy who thought that assembly code was too bloated (I still can't understand that one).The amount of hardware to implement even a simple CPU is decidely nontrivial.

For many applications, it's overkill.

sapo
February 19th, 2006, 06:41 PM
lol.. that idea of an IDE that makes everything scares me, in my experience this kind of stuff just makes useless, dirt and wrong code for you.

LordHunter317
February 19th, 2006, 06:52 PM
They can produce wonderful code, given adequate input. Unfortunately, such tools aren't very smart, which is why I really wish Java and C# embedded macro languages, and why I'll be trying Nemerle in the near future.

I can already see a million ways on my current project as to how macros would make life substantially eaiser, without any compromises in type saftey.

stimpack
February 19th, 2006, 10:18 PM
Most of my programming has been in C and 8086. Never liked C++, I don't think in terms of objects, I think like a CPU. Been playing with Python lately, scrictly procedural and its quite nice, can see me using this for simple scripting.

I have a huge self written 8086 library, so even python coding is not always quicker than writing in assembler for me, it depends on if there is a library to use or not.

Lower level languages are so much faster and smaller if thats a concern. I spent many years in the cracking scene, when your spend life in a disassembler you realise just how bad the code that many compilers produce is, its shocking.

LordHunter317
February 19th, 2006, 10:26 PM
Been playing with Python lately, scrictly procedural and its quite nice, can see me using this for simple scripting.Python isn't anything close to a strict procedural language. It's an multi-paradigm language, just like C++.

oldmanstan
February 19th, 2006, 10:42 PM
I remember when java first came into major use and companies starting coming out with IDEs for it, every magazine had an article about how much it sucked. They said it was slow because it was interpreted, etc. etc. etc. I think it's interesting that python is so popular being interpreted.

One possible difference I see between now and quite a few years ago is that computers have become faster in real terms and most have more memory in real terms (in other words running the popular OSes of the respective time period the OS takes up a smaller percentage of resources). Therefore writing in a higher level language is more feasible since the computers running the scripts aren't as easily choked.

I remember reading an article in some game magazine for a flight sim and the reviewer chastised the designers for using directX (this was quite a few years ago) and said that everyone should just write their games in assembler so speed wouldn't be such an issue. Now days no one thinks twice about stuff like this, of course directX (and every other library like it) is more mature now than then but the fact that the CPU and other hardware are much better now can't be discounted.

I dunno, just how it seems to me as an observer.

Jessehk
February 19th, 2006, 10:42 PM
Python isn't anything close to a strict procedural language. It's an multi-paradigm language, just like C++.

I believe he is saying that he uses it for its procedural aspect (while ignoring its other paradigms).

oldmanstan
February 19th, 2006, 10:44 PM
I believe he is saying that he uses it for its procedural aspect (while ignoring its other paradigms).

That's also what I got out of it.