|
The discussion here was if you believe that is possible to code all in just a single programming language. So I post my point of view of the main general proposes to code, so you will have to deal with at least one of the language of each subject.
CRUD means Create, Read, Update and Destroy, and become from the MVC pattern.
So, when you say “Programming is a bit more diverse then the CRUD stuff you're describing.” has no sense in this context. Of course that is a little more diverse, but I didn’t want to put a whole compendium here, just a point of view of how to classify it.
|
|
|
|
|
I just wanted to point out that your list of areas is confined within the tiny world of business CRUD-like applications. And, as you correctly emphasised, even within this tiny area you'd need a range of languages. And in the bigger world it's hardly possible to deliver anything useful without dozens of languages.
|
|
|
|
|
Business applications are a bit more diverse then the CRUD stuff you're describing.
|
|
|
|
|
Actually this would be a good question for a survey. What do you develop?
Business/ control-validation
Games
Mobile
Science
Self amusement
What other do you see?
|
|
|
|
|
There are hundreds of very distinct directions, each with its own set of tools, methods and philosophy.
To name just a few:
* System-level programming (OS, low-level tools, etc)
* Compilers, linkers, static analysis tools and such
* High-performance number crunching - with its own huge taxonomy of sub-topics, ranging from stuff running on GPGPU and to the full-blown message passing clusters.
* Symbolic computing, which includes CAS, various aspects of the CADs, some parts of what is considered "business" coding (e.g., rule engines, semantic networks and such)
* Mission-critical real-time (different from the system-level, as it employs a totally different stack of tools)
* Embedded (from CNC machines and consumer electronics to automotive/aerospace controllers)
* AI (a giant area with hundreds of sub-branches, from pattern recognition to bayessian decision, NLP and such)
* Trivial data storage, processing and reporting (this is where your stack of buisness-oriented tools fits)
|
|
|
|
|
Not to mention, many of us don't just fall into one of those buckets.
|
|
|
|
|
Even a single application (not even a "system"-scale-something) may cover a number of that branches.
|
|
|
|
|
and the virus?
and the antivirus and security programs?
and games?
and mobile develop?
and websites, web systems?
|
|
|
|
|
Sorry, I could not even parse what you've meant by this message.
I said that my taxonomy is far from being comprehensive. You're trying to derive categories of a different level of abstraction anyway.
|
|
|
|
|
The subject that anyone sees is the compiler issue.
You can use just a single language for everything, but to this, it is required that a compiler or interpreter exists.
Also, the compilers translate our pretty code, and put in other validations, or additional code. One example of this is the errors. One system can work without errors, but the users, or developers doesn’t wants that the system keeps working if in the execution you find a division by zero, or a null value; or (the most pain in the ass) DBNull value.
So one important factor that determines if the language support to work with a thousand of microprocessors core, or if the final program will response in less time; or if can be use to mobile development or cloud computing, or whatever you want; is the compiler, and the framework with you are working on.
Some one here said so. You cannot program for iOS with C#; unless you use xamarin.
You need to learn SQL (from its specific DBMS) unless you use Linq.
The same SQL is an example of a interpreter issue, because in theory are an standard but for practice, you know that is too different work with MS SQL Server than Oracle, than DB2, than Informix.
Personally, I love ruby, to me is the language of the future, as is the most refined language ( "Hello World!".reverse[0].chr to get “!” is priceless). Lolcode is really funny
|
|
|
|
|
You might also want to consider things like garbage collection, tends to be a big no-no on a RAM restricted system (like embedded). So how exactly would you go about implementing your Ruby code instead of writing C/ASM when you've only got a few megs to play with?
|
|
|
|
|
What a compiler is?
Takes your code and convert it to 0’s & 1’s so can be understood by machines.
So, what is the problem with write the code in any language and then ask to the compiler to fit the output to a couple of megs?
If the compiler cannot do that, is my point here. The problem is to find or develop compilers that could do that.
|
|
|
|
|
It's mostly possible to do that sure. The issue is that some languages use certain concepts which don't fit well with a straight-forward translation.
One such example is GC. If you're writing in Python (or another lang which uses garbage collection), there's no way you can specify when which variable can be released from RAM. Thus the entire GC needs to be contained inside your executable binary, or you have to package a VM with it simply to run memory management. So not only is the file itself larger, it will require more RAM too.
It's one of the "tricks" used in naive Lisp compilers: They simply package the entire lisp engine inside the EXE file together with your actual program - i.e. it statically links the entire Lisp interpreter/VM with your code. Slightly better is the way ECL does it, by converting the LSP source to byte-codes which it then converts to C source and finally compiles - unfortunately it still needs to incorporate the GC code. Some of the commercial Lisps do compile directly to machine code (no such intermediate steps and no static linking), but I still see they leave the GC.
|
|
|
|
|
If the hypothetical language (H) had all the useful tools built in and did not require any 3rd party silliness, I'd be all over it.
Somehow I think the H language would be adapted and changed to improve on it and it would quickly become H++, Hi (H improved) and kaH! (Kick @ss H!) and none of them would be compatible with the other H any more.
It was broke, so I fixed it.
|
|
|
|
|
S Houghtelin wrote: Kick @ss H! Hey @ChrisMaunder, does this mean we can "tag" other members in posts now?
Has this been around for a while and I just missed it...?
Edit: It seems my tagging of Chris didn't work... ... I think that answers my question...
2nd Edit: After editing my post, the tag now seems to work...
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill
America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde
Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
|
|
|
|
|
That's how good H is, I removed the link but the kaH kept putting the link back in when I posted.
Stupid hypothetical language...
It was broke, so I fixed it.
|
|
|
|
|
Here are your developers. Here are your developers on H.
Makes me wonder why there's no E language yet.
Do a lot of developers already use THC? Would PCP be similar to PHP? Would LSD be similar to LISP?
|
|
|
|
|
Methinks a concept like H would be too much for us. And the H++ already means that H was never good enough to be called H in the first place.
So this H should enable absolutely all concepts ever devised for programming in at least a similar efficacy as the language which best encompasses that particular concept. As a start off point, H would need an extremely efficient GC while still allowing as easy manual allocation as (at least) C - AFAICS that alone would make it in the realm of fiction.
But it's nice to dream isn't it?
|
|
|
|
|
irneb wrote: But it's nice to dream isn't it? If it weren't for the dreamers we'd still be clubbing each other with sticks in caves. Now we can do that virtually on the internet.
It was broke, so I fixed it.
|
|
|
|
|
I'd like to think a club was the original H. Must've solved a lot of problems in those days.
But jokes aside ... you've got a point: Aim for the stars, and just perhaps you'll learn to fly!
|
|
|
|
|
Pff.. H is so yesterday, try J!
|
|
|
|
|
Judging from some of the comments that have been posted, it seems that most of you struggle with hypothetical situations. The survey says suppose that this language can do everything and be used everywhere, would you use it everywhere? Most of you never really got past the first part, as you are commenting about whether a language like that could exist.
That is not the crux of the question (in my opinion). Presumably, from the description of the language, it would be the best tool for every task, so really the question boils down to, do you like using one language or do you prefer the variety of using multiple?
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill
America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde
Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
|
|
|
|
|
I agree: hypothetically it would be great to be able to use a single language for every task. However, imagine how complex such a language would have to be: would be very difficult to get to grips with all of it so you would only ever use small parts of it; e.g. the parts that apply to the task at hand or your specialty. Not so different from now, really.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
Those who seek perfection will only find imperfection
nils illegitimus carborundum
me, me, me
me, in pictures
|
|
|
|
|
Yes. And what about trying to teach beginners? I believe there will always be a need for entry-level languages.
|
|
|
|
|
I think you're wrong. Languages evolve to fit the environment: if they didn't we would all be coding in COBOL because it was the "perfect language" for it's environment at the time.
Clearly, it doesn't fit well in the modern world, so it has been replaced by languages which fit the current environment better.
If we accept that, then we accept that whatever language we use today as a "perfect language" (even if such a hypothetical language doesn't exist) will be seen as useless garbage by the next generation (or next Thursday, whichever comes first).
So do we have a choice? No - we have to learn new stuff (and old stuff) or we can't do our jobs.
This message is manufactured from fully recyclable noughts and ones. To recycle this message, please separate into two tidy piles, and take them to your nearest local recycling centre.
Please note that in some areas noughts are always replaced with zeros by law, and many facilities cannot recycle zeroes - in this case, please bury them in your back garden and water frequently.
|
|
|
|