|
To keep academics employed, whether that be gainfully or painfully is for you to decide.
|
|
|
|
|
I think the exact opposite is true:
We have many languages so that also non-academics can program.
We might have a very simple language if we had only one. But it would be damn hard to write sofware with it. For example Assembler or C. Very easy languages but not easy to use...
|
|
|
|
|
Check out this site: http://www.99-bottles-of-beer.net/[^]
"This Website holds a collection of the Song 99 Bottles of Beer programmed in different programming languages. Actually the song is represented in 1259 different programming languages and variations."
So, if you're thinking of cutting 20-30 languages down to just a couple, think again.
Fill in the blanks: I can code that song in ____ lines using ____ language.
Gary
|
|
|
|
|
|
|
Sorry if somebody feel wired. But somebody help me by specifying how to vote for the survey?
Thanks in advance.
Brinda
|
|
|
|
|
Go back to the main page and vote. Come here to see the results.
John
|
|
|
|
|
I vote for "We should work towards far fewer languages"
|
|
|
|
|
The idea of one language is kinda scary. Does that mean that HTML, JavaScript and CSS would all be subsumed into the megalanguage? And does that mean we all have to use library files with header files? And what about coding macros in VBA? And how would I program my old (still running) Osborne One? And what happens when a new chip comes out that isn't Intel? Remember the Inel vs Motorola/Big endian vs Little endian issues?
Language, be it verbal or software is an evolution. Once mandated, it becomes a dead language like Latin, or Ada.
I like the idea of looking for the right tool for the job, and if it doesn't exist then I'll make one or commission one. It has a nice organic feel to it, and that seems to be the most successful model we've seen yet.
If we use just one language, then we effectively become Cybermen and evolution of the machine stops, and bloatware will rule.
I suspect this question was posed with so few response possibilities just to engender controversy.
Is there one language that could allow for all platforms, will run the desktop PC, the web server, my phone, the microwave, the ATM, the car stereo, the HD recorder, the games consoles, my MP3/MP4 player, and still allow me to play with my antique computers?
I suspect it doesn't exist and maybe never will.
Douglas Jensen
douglas.jensen@maxgaming.com.au
|
|
|
|
|
Evolution is a funny thing. At times it has decided to take one thing and make many subtle variations (see Darwin's finches). At other times Evolution has converged to one (or few) similar models (see nectar feeders in bats(mammal), birds, Moths, insects, monkeys, (if memory serves) and a slew of other animals, all of which have developed long process' which maximize nectar acquisition without damaging the flower.. ohh yeah bees to.
So I think that the issue of the ML or the MegaLanguage, is more a matter of what we are intending to to with it. if we intend to have a degree for people who write printer software, and another for mobile phones, and another for calculators, graphics in a game, graphics on the web, a web language for this, a different one when doing that, 7 different ways to do the same basic thing on a database (in 45 different programs)... etc ad nausium
or we could have one profession that has agreed upon standards so that development time/money/energy(think green ) isn't wasted, then we should start congealing our languages down to one thing that everyone can handle..
In the future college students will need to be versed in coding (ML hopefully) so that we can cut down on waste. I am not saying that we need to get rid of all language variants because there will always be some need for higher and lower level languages, however not everyone needs to know them, they can be reserved for true specialists.
I hate to go all geek.. but .. do you think Scotty, Laforge, Kirk, Spock, Worf, Bones or even Quark all knew 100's of languages to work on the subsystems of their various ships? Off course not !
And do you think Data (the android ) was written with more then one language by Dr. Soung? that would be a mess!
We need a bit of convergence, coagulation, and coherence to make the languages of our grand children into one or two volumes of technical reference materials (with decent documentation and examples). Because I fear that the technological marvel we have made is resting on the shoulders of people who are not passing the knowledge on, and are unwilling to hire someone who is lacking in experience...
Take bit wise operators.. simple enough to learn difficult to truly master, yet for a well defined compiler something that could be encoded naively, and recognized for speed optimization.. because lets be honest the days of optimizing for size are dwindling. The age of AI compilation is dawning.
|
|
|
|
|
You raise some interesting points, though your Star Trek analogy muddies the waters a bit. It's hard to draw parallels with fictional characters who may or may not use the same technology that we use. It's rather academic in that light.
However, your take on evolution and how that extrapolates into software languages is insteresting.
I'm still unconvinced about the overall relevance of attempting to boil down programming languages into one UberLanguage. It tends to smack of an Orwellian 1984 and Newspeak. By definition simplifying language actually makes conversing in that language more difficult because the more abstract cases become difficult to describe and define.
Basic is a good example. There's a lot I can code with Basic, be it VB, VBA or the old Quick Basic. However it would be extremely difficult to code for the http protocol, or for robotics with Basic since it's a language which, by definition, is basic. Compare that with C or any variant thereof (including Java - what's that? Heresy you say? So be it!) and it's easy to see why the C group of languages have become so popular. They're robust, and powerful in the way that you can code more of it with itself.
And yet, there are times where Basic is exactly the right language. Imagine coding macros with C++? It sounds horrible and would remove the simplicity of coding macros from a large user base that hasn't developed the tools for object oriented programming.
I'm yet to be convinced that any of us "needs" convergence of programming languages. There's just not a compelling arguement. That doesn't mean there won't be a language of preference, particularly as 4GL and 5GL become more developed.
As for AI compiling, I'm just waiting for the day when the machine says "No", and means it.
Douglas Jensen
douglas.jensen@maxgaming.com.au
|
|
|
|
|
So lets say I want an app on my computer that monitors my kids(would be truly amazing because I have none but), and I want it to contact my cell so that I can allow disallow (shut/cut off) the activity(computer or user session) many potential options there (think corporate/landing pod security )and i need to write it fast..
it might look something like:
if(User.Accessing(FORBIDDEN_`0))
{ bool allow;
using(TELEPHONY)
{
allow = Me.Phone.AllowAccess(User, FORBIDDEN_`0).Result());
}
Browser.AllowAccess(User,FORBIDDEN_`0,allow);
}
with maybe a browser flag:
if(User.Accessing(FORBIDDEN_`0))
{
Browser.Notify("Contacting you father to see if this action is allowed.");
bool allow;
using(TELEPHONY)
{
allow = Me.Phone.AllowAccess(User, FORBIDDEN_`0).Result());
}
Browser.AllowAccess(User,FORBIDDEN_`0,allow);
}
And then compile it into their own browser...
I'm not saying that it wouldn't cause problems in the wrong hands.. but there are ways around that..
What I am saying however is that if you wanted to learn telephony you could but you wouldn't need to. I mean really how many libraries are there in existence for standard C? and how many do you really need for a simple program.
By lowering the number of available languages out there every remaining one would need to become more fit (natural selection) or risk "extinction".
Realistically this is doable now however you would need 5 or 6 languages now (and an agreement with apple, google, Microsoft, and all of the virus detection software's just to get this small snippet into any computer(or a devious employee).
not to mention a staff of 10, a scrum master, an investor and a couple of months.
and I agree there would be an endless list of functions (and or overloads)that one could conceive of for this MegaLanguage, it is truly scary
however prototyping could be made easier:
say I wanted to turn on my coffee maker in my office at 7:45 for morning coffee:
chances are that there are no built in coffemaker functions in the language.
Appliance OfficeCoffieMaker = new Appliance(10.0.0.0.123);
OfficeCoffieMaker.Function1(07:45:00);
so I don't need to know the internals I just need to know the address of the function that I am trying to invoke,
if ALL things were standardized this would become easier...
just the language is not enough.
|
|
|
|
|
If we stop allowing change, we lose the feet of those who would stand on the shoulders of the giants that came before us.
If you go with one language, you will lose all the innovation that got us as far as we have come. If there is one language, than it is controlled by someone,and thier idea of the right way to do things might not agree with yours.
When I worked in FORTRAN IV, there was one kind of 'for' loop. Is that where we should have stopped?
They have to stop language innovation from occuring, since it would break old versions of the language. We woulnd not have gotten to object oriented, or aspect oriented, or the use of GUI builders, since that really requires the use of call backs/events, which you can't dowithout pointers (or wrappers to pointers).
Silver member by constant and unflinching longevity.
|
|
|
|
|
... will work about as well as Esperanto did...
Everyone who is speaking that will start to program in 1 language....
The idea will die a horrible death.
Also: many programmers will stop programming if they are coerced into learning a new language, and retire from that field... Think of all the thriving open-source communities that would wither?
Just my 2 cents.
|
|
|
|
|
But i still prefer some languages over others. Makes life a little easier sometimes.
SS => Qualified in Submarines
"We sleep soundly in our beds because rough men stand ready in the night to visit violence on those who would do us harm". Winston Churchill
|
|
|
|
|
We FORTRAN Geeks are a dying breed, but then again you have to look at what the Big labs use
and doing accurate math in any other language sux.
|
|
|
|
|
I've got another idea. Since most languages are very similar anyway, Python/Ruby or C#/VB.NET and the differences just boil down to style and formatting, why don't we just have an IDE that can parse/display a language in multiple formats, and still compile/IL/bytecode/whatever the source to/from the same stuff.
Not to use the phrase "It shouldn't be that hard", but they have translators out there for similar languages, so it seems like the same code could applied transparently in the IDE. That way we can all do our own thing, and just have 2 or 3 major languages under the hood.
Somebody get right on that ok?
|
|
|
|
|
|
|
This misses the point... the differences in language are ideological not functional. The poll is really about whether you are tolerant of ideological differences in programming or not. After all most languages that we would consider programming languages are Turing Complete[^] and so have a functional equivalence (see also Greenspun's Tenth Rule[^] for a cynical extension of this).
P.S I voted for there can be only one...
|
|
|
|
|
CurtainDog wrote: This misses the point... the differences in language are ideological not functional.
Ohh yes definitely, however syntactical sugar just steepens the learning curve for the beginner, and if they all do basically the same thing, why waste the time and resources on developing alternative languages(dialects) for the same thing. the structure of a loop will for 99.9% of all possibilities be of the nature:
(precondition)
if(Condition)
do(work)
loop
why devise alternate syntactical variants, the time spent teaching all the variants could be more wisely used teaching good recursive theory, or data structure management etc...
|
|
|
|
|
I agree - languages can be looked at as skins in much the same way as themes/styles may be applied.
Gilad Bracha talks about this in some of the material on Newspeak[^] - currently this uses a Smalltalk-like syntax but he mentions changing to use braces as standard, and somewhere talks about the idea of making the language skinnable.
I seem to remember similar thoughts from Martin Fowler somewhere in his Domain Specific Language work.
There are other examples. Particular, a trend in programming language design to support Inner DSL's (Fowler's terminology), where a DSL may be embedded in an existing language. Newspeak, LISP, Smalltalk, and OMeta all having some aspects in this direction.
|
|
|
|
|
Yeah, I first thought of this when dealing with a source control issue a while back. A colleague of mine and I were frustrated with the way source control packages merge the code. Ours lets you use any third party merge tool you want, and we lean towards Winmerge or P4Merge by Perforce. Both are free and both have their strengths, but issues still come up; namely that Visual Studio/Resharper will often reformat you code for you when add a closing brace to a block in C#. The way it moves the code around and sometimes spans it over several lines, there's no way a text editor can tell that the two blocks of text are 'functionally equivalent' in C#.
So we thought it would be cool if there were a merge tool that had knowledge of C#, and wouldn't display a reformatting as a difference, allowing the developer to concentrate on the real changes. From there we made the leap to say 'why can't the IDE just display a block of code one way for one developer, and another way for another developer, depending on user options?' Because they would compile to the same IL anyway. And maybe this idea could extend from styles out to languages.
Of course the parser and IDE will have to get really smart for this to work.
|
|
|
|
|
While it looks rather silly on the surface to have so many different languages (and it certainly makes our jobs as developers more difficult), there was a reason for creating each and every one of them. It's the same reason that there are aisles of similar-looking tools at any hardware store: you use a different tool for a different need, and if the tool you need doesn't exist, you create it.
Sure, you could keep adding stuff to the frameworks of the general-purpose languages to cover every possible eventuality, but that adds complexity and slows down the language. There are also situations that the general-purpose languages are simply not suitable for (i.e., functional languages).
|
|
|
|
|
...And the reason so often is a bad one. #1 reason for inventing a language: ego. Yes, I mean you, Larry.
The single language idea is theoretically attainable through the all-enveloping runtime. A language is, or should be, a minimal set of statements; a few conditionals, assignment, sub/function and of course expressions. The vast and seemingly random collection of built-ins found in some languages are so much more manageable sorted into a structure of runtime APIs. But geek egos being what they are we'll continue to see a stream of fad "languages" each with its enthusiastic herd of fanbois.
Emerald On Runways, anyone?
|
|
|
|
|