|
Browser scripting (javascript and the thousand frameworks, the dying flash and action script)
Business logic (C, C++, C#, java, javascript for SAP or node.js, ruby, Erlang, Python, PHP, VB)
Work with data (SQL, Xpath and in a very small part, linq)
Formatting, presentation and reports (XAML, HTML, OOML, XML-XSL-XSLT-XSD, CSS, LaTex)
If you work in a desktop environment, you most to work with one language of the last three subjects, if you work at web you most to work with one of the four subjects.
|
|
|
|
|
What about meta task like bash/grep/perl/awk/.../emacs to analyze/data-mine/reverse-engineer/refactor data/code?
What about build scripts like make/ant/... (you name them)?
What about code based documentation like C#-XML-comments, doxygen, etc.?
You are probably faced with many more "languages" in daily busines that you imagine
Cheers
Andi
|
|
|
|
|
Meta task programs are tools, not programming languages.
Code based documentation is also a tool although have a syntax and rules.
Scripts, are like programs, but interpreted, put them on the Business logic category.
You forgot to put ETL, BPM, case tools, MDD tools. But those are manage from graphical environments, and finally inside of then you found one of the mentioned subjects
I didn’t want to make a whole compendium of all possible languages or tools. Just a point of view of how to group PROGRAMMING LANGUAGES or FORMAT LANGUAGES. This in the background of the survey discuss, that was if you think that you can do anything with just one language.
You point of view is also valid.
Regards!
|
|
|
|
|
Guess we can drop flash and action script from the browser list, unless there's a revival of them.
Is HTML a Language?
|
|
|
|
|
Has an L at the end.
That's why is wrote "Formatting, presentation and reports"
|
|
|
|
|
|
Programming is a bit more diverse then the CRUD stuff you're describing.
|
|
|
|
|
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?
|
|
|
|
|