Douglas Crockford Envisions A Post-JavaScript World (infoworld.com) 300
JavaScript developer (and JSON proponent) Douglas Crockford recently described "a theoretical post-JavaScript World," according to InfoWorld. Crockford "believes the web development staple needs a successor that can fix multiple programming nuances." An anonymous reader summarizes their report:
Despite its status as the world's most popular language, Crockford told an audience at the Oracle Code conference, "It would be sad if JavaScript turns out to be the last language." He complained that JavaScript has two different ways of declaring variables -- let and var -- as well as two different "bottom variables" with no value -- both null and undefined. "There's an argument among language designers, should we have bottom values at all? But there's nobody who thinks you should have two of them."
According to InfoWorld, Crockford "also presented a scenario with JavaScript being turned into a purely functional programming language by getting rid of 'impurities' like date, the delete operation, math.random and object.assign. Afterward, he stressed replacing JavaScript rather than adding functional capabilities to it... The next language also should be better able to deal with multiple cores. Most languages have followed the sequential model of Fortran, executing one operation after another, he said. 'That's not how the world works anymore. We now have lots of cores available to us, which all want to be running at the same time.'"
In other news, Crockford also proposed ending the "spaces vs. tabs" debate by simply eliminating tabs altogether.
According to InfoWorld, Crockford "also presented a scenario with JavaScript being turned into a purely functional programming language by getting rid of 'impurities' like date, the delete operation, math.random and object.assign. Afterward, he stressed replacing JavaScript rather than adding functional capabilities to it... The next language also should be better able to deal with multiple cores. Most languages have followed the sequential model of Fortran, executing one operation after another, he said. 'That's not how the world works anymore. We now have lots of cores available to us, which all want to be running at the same time.'"
In other news, Crockford also proposed ending the "spaces vs. tabs" debate by simply eliminating tabs altogether.
tabs4lyf (Score:5, Insightful)
You go to hell and you die.
Re: (Score:3, Insightful)
After 33 years of working as a programmer, I think you're wrong. Junior devs just don't grok tabs. They interchange tabs and the wrong number of spaces and even worse, mix them. I gave-up long ago on tabs and just started using spaces. That's the only way you can work well with people not smart enough to understand tabs.
Re: (Score:2)
If your junior 'devs' don't understand the fucking tab key, then wtf are they doing writing code for you? This explains why so much of today's software is badly executed... bloated buggy messes.
Re: (Score:2)
There is this infestation of 'Junior' (cheap and you get what you pay for) developers in the industry. I'm not saying 'Junior' as in starting out their career and with some guidance they will get better, I'm saying people over a decade into their career and still hopeless, and therefore cheap and persistently cheap.
Too much management thinks that picking the right process means they can get decent result out of whatever people they feel like, under insane collaboration constraints like 12 hour offset in ti
Re: (Score:2)
That's why spaces-to-tabs and code beautification are essential features of any editor.
You get a single "why did you commit every file in the repo with no visible changes?!" and form then on it's pretty much invisible maintenance when you edit individual lines.
Or just don't let anyone else work on your code, that's the easiest option.
Re: (Score:2, Insightful)
Re: tabs4lyf (Score:3)
You might want a white space between your case statement and loop end, I suggest a tab for clarity.
Re: tabs4lyf (Score:5, Funny)
Nine for mortal man doomed to die.
Re: tabs4lyf (Score:3)
One for the dark lord in his dark thong
Re: (Score:2)
in fortran i used to space over 8 instead of 7 just to make sure i missed column 6 (continuation card)
Re: (Score:2)
hit tab key once vs hammer space bar, possibly missing a space.. I vote for the former.
Re: (Score:2)
hit tab key once vs hammer space bar, possibly missing a space.. I vote for the former.
There's nothing wrong with the tab key, it's the tab character in files that will lead to the destruction of polite society. I trust that you can tell the difference. Either way it looks bad. Either you didn't know, which is really bad, or you are pretending not to know in order to hold a contrary position which is worse.
Re: (Score:2)
define 'polite society'
Re: (Score:2)
define 'polite society'
One in which there are no more invisible indentation errors.
Re: (Score:2)
Re: (Score:2)
Aah, it's been a while since I had a good old tabs v spaces debate.
Spaces required by a coding standard are also easier to automate the checking of
if (preg_match('/^\ \ +/',$line)) {
$ok = False;
$errors[] = "Space indenting on line $linenumber of '$filename'. Check your editor's indentation settings.";
}
Yup, that was pretty complicated.
Tabs certainly saved a few bytes when saving a few bytes mattered, but these days they do not.
While this is true, file size has never been a primary reason why I use tabs.
The reasons for using tabs have gone away.
Nope. They're actually more relevant now that we have such abundance of portable devices. I use tabs for 2 main reasons:
Re: (Score:2)
Even really primitive editors like windows notepad support tab properly.
Well there's that, and there's also not exactly a non destructive 'divide the leading spaces by two' or 'multiply leading spaces by two' to get the changeable tab visualization. Even if there were, the best way is tab indent for code level, then space indent for visual indent on continuations past the code block level.
Re: (Score:2)
I assume you mean with only spaces. A proper tab centric style can have spaces after tabbing to the code block level (for visual alignment of continuation)
Re: (Score:2)
you don't have a "tab == x spaces" in your dev environment?
by the way, there's NOTHING wrong with leading tabs... as long as you ALWAYS use tabs. Convenient thing is that if I like 2 space indentation and you like 4 space indentation, we can both have what we want, as long as no one is converting leading tabs to spaces.
Re: (Score:3)
as I said, if the leading space on line is tabs, you are fine, including multi-line statements. I know, I've done it. And if you want to see two spaces per tab and I want to see 4 spaces per tab, we both can get what we want. Trust me, it works fine. Just requires people to pay attention to what the group wants, rather than insisting on going their own way, no matter what.
Re:tabs4lyf (Score:4, Insightful)
Yeah, that's like me "proposing an end to emacs/vi war" by suggesting everyone uninstall emacs*. It bakes in the side you want to win.
*I flipped a coin. No way was I going to reveal a real preference on such a hotly contested issue.
Re: (Score:2)
*I flipped a coin. No way was I going to reveal a real preference on such a hotly contested issue.
Oh, come on! Skeletal integrity is so overrated.
Re: tabs4lyf (Score:2)
That's because you used a devil coin!! You toss that coin into a volcano right now, you hear!?
I am actually an emacs fan... See now that's bravery... :ducks and runs:
Re: tabs4lyf (Score:2)
Re: (Score:2)
Changing tabstop depending on situation is the primary reason I think tabs are useful.
Re: (Score:2)
Re: (Score:3, Informative)
The problem is that if you look at the code in any tool other than your favorite editor, it's probably displayed with 8 spaces per tab, which is annoying and stupid.
Tabs should be completely eliminated. They are a obsolete vestige left over from mechanical teletypes. If people want to adjust the apparent indent amount while they edit code, then text editors should be enhanced with a feature to scale any leading spaces on each line to arbitrary widths. There's no need to hard-code text files with special inv
Comma-separated vs. tab-separated (Score:5, Interesting)
Tabs should be completely eliminated. They are a obsolete vestige left over from mechanical teletypes.
"Completely" is a strong word. I can understand using spaces for indentation, but if you "completely" eliminate tabs, you break compatibility with POSIX Make. Furthermore, if you "completely" eliminate tabs, then what format for delimited flat files? In my experience, tab-separated values format is more efficient than comma-separated values format because a value is far more likely to need escaping because it contains a comma than because it contains a tab.
Re: (Score:2)
I really meant eliminated from source code. If you want to store tabular data, maybe tabs would be OK. However, ASCII '\x1E' (record separator) would seem to be even more appropriate.
The use of tabs in POSIX make was an epic failure. Instead of using visually indistinguishable spaces and tabs to mean two separate things, they should use some visible character for the current leading space use, and use any number of leading spaces instead of tabs.
Re: (Score:2)
No, the record separator is used to separate records, aka lines.
As "replacement" for tabs you would use FS, the field separator, one char in ASCII behind or before the record separator.
Well, considering that you could have line feeds in a field, take the "line above" figurative.
Re:Comma-separated vs. tab-separated (Score:5, Funny)
Re: (Score:2, Funny)
The solution is easy. The tab character is ascii 0x09. We can remove it, and slide down all the other ascii characters to match and fill in the hole.
Great, we even have an opening for a new ASCII character in 0x7F ! how about some kind of special character for programmers to help them manage indentation levels more easily, like a space but without having to press space n times! that way we also eliminate the debate about how many spaces is the correct level of indentation.
Re: (Score:2)
Har har har har!
On a cloudy (but surprisingly warm) sunday, you made me laugh again (y).
Re: (Score:2)
if you "completely" eliminate tabs, you break compatibility with POSIX Make
Syntactically important tabs is the worst part of Make. God help you if your editor shows tab and spaces in the same way. I for one would be glad when that "feature" is gone.
In my experience, tab-separated values format is more efficient than comma-separated values format because a value is far more likely to need escaping because it contains a comma than because it contains a tab.
If you want space-efficiency, compress them before writing to disk. You'd get far more savings that way.
Re: (Score:2)
Yes! Lets change all editors to add a feature so that people can change a setting to make indentations show in the size they want, instead of just using the feature any decent editor already has that allows people to show indentations in the size they want.
If you're changing all editors you should just implement Elastic Tabstops (http://www.nickgravgaard.com/elastic-tabstops/), since that's the best way to indent code.
Re: (Score:2)
Which tools except editors do you use to "look at code"?
Re: (Score:2)
text editors should be enhanced with a feature to scale any leading spaces on each line to arbitrary widths
Nice idea, but will fall apart with the convention of tab indentation to indicate code block, then spaces to visually align continuation.
Re: (Score:2)
Coding conventions can facilitate this. People say you need spaces to make stuff align, but you don't.
if (
condition1 ||
condition 2
)
Looks good with any tab setting, everyone is happy.
Re: (Score:2)
I agree. If I use tabs for indention I don't care about the number of spaces they're equivalent to. The setting is also tied to the editor, and not the code, so if you look at my code on your editor, the code will have your favored indentation length.
Chances are it'll look like crap on anything but your tab width, unless you never do any daring stuff like breaking long parameter lists into multiple lines or some such.
Re: (Score:2)
Re: (Score:2)
The right way to do it is tabs to the point of indent, and spaces thereafter.
Yeah, and how do you do that reliably and automatically? Does your editor know what constitutes the indent in every language that you're using?
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Erm, I don't get it.
What is the difference between "indentation" and "alignment"?
Re: (Score:3, Insightful)
tabs for indentation
There are only two camps (Score:2)
I'm in the tabs but not spaces camp.
Re: (Score:2)
Why would you care? You can make your editor show whatever indent you like. Just tell it to display leading spaces double-wide or half-wide or whatever you want.
Your current editor may not have that feature, but it could have. As long as the format stored on disk uses spaces, then it is trivial to infer which indent was used. Emacs (and many other editors I'm sure) can do that part already. So even if spaces are used on disk, your editor UI could display it to you exactly as if tabs were used.
But it doesn'
Re: (Score:2)
Did you accidentally substitute "space" for "tab" and vice versa in your post?
Your post makes no sense.
It is actually just the opposite way.
Tabs v. Spaces (Score:2, Insightful)
Re: (Score:2)
Re: (Score:3)
Even better yes please to an entire ecosystem of languages. Its one of the fundamental flaws of software engineering.
At work, I write game and engine code in C++, some platform-specific Mac stuff in Objective-C, tools in C#, all managed by a build system written in Java, customized with Python, and Bash and Powershell scripts, with a web interface in Javascript. And that's just the languages I've interacted with myself.
Domain-specific or specialty languages work great in other industries, so don't blame it on "software engineering". This is problem for web developers.
Re: (Score:3)
But you can use a regular expression to replace tabs with spaces or the opposite way around?
user@host:~/code $ git log --stat
commit: 10048
user: tabluvr
message: replace idiotic spaces with tabs
files changes: 10000
lines changed: 1000000
commit: 10047
user: spaces4eva
message: fix broken tab formatting by replacing with spaces
files changes: 10000
lines changed: 1000000
commit: 10046
user: tabluvr
message: fix mangled indentation from previous commit
files changes: 10000
lines changed: 1000000
commit: 10045
user: spaces4eva
message: replace tabs with spaces
files changes: 10000
lines changed: 1000000
(more)
Re: (Score:2)
That is not insightfull, but ignorant.
In every IDE and that includes "low level editors" like vi/vim you can decide in the settings how many spaces are "displayed" for one tab.
even 4 is too much (Score:5, Funny)
yaml uses 2 spaces for indents.
Maybe tab should be 1 space, then everyone would be happy.
Re: (Score:2)
What do you mean it lines up?
Also, why does your curly brace get its own line?
As for columns, I really only need 72 columns for my printer or typewriter so the margins work out nicely. Having 80 columns on my CRT gives me some space to hold rulers and other information.
Why have two 100 column windows on your widescreen desktop when you can have three or four 80 column?
Why on Earth? (Score:4, Interesting)
>also presented a scenario with JavaScript being turned into a purely functional programming language by getting rid of 'impurities' like date, the delete operation, math.random and object.assign.
Getting rid of those things does not make JS a functional programming language.
Also, writing in purely functional languages just fucking sucks, they aren't and won't ever be a multi-core-coding panacea, and if highly-parallel-performance computing is your concern for the future, being ignorant to how parallel processing environments work by "letting the compiler decide" isn't going to make things better.
Multi core programming is too much work (Score:2)
As for the rest of his complaints, well, it's mostly there for backwards compat. Don't use it if you don't want to.
Re: (Score:2)
I don't need to play Quake 5 written in JavaScript. That's what C's for.
Until you find that a program written in C was compiled for an instruction set and operating system other than that of your computer. Then what do you do?
Re: (Score:2)
He buys a new computer, facepalm. Oh, an old one ..... ;D
That was easy
Re: Multi core programming is too much work (Score:2)
We don't need a new language (Score:5, Interesting)
Re:We don't need a new language (Score:5, Informative)
WebAssembly [wikipedia.org]
Re: (Score:2)
How about Parrot [parrot.org] ? It is the Perl 6 VM, a Javascript implementation is in the works, several other languages are also being developed.
Re:We don't need a new language (Score:5, Insightful)
We need a standardised virtual machine that languages can be compiled to run on
NO!!! What we need is for people stop using scripting to turn web pages into applications when 99.99% of the time I JUST WANT TO READ THE GODDAMNED WORDS ON THE PAGE!
Re: (Score:2)
Much of it is marketing me-to-ism as people have to copy the UI fads of other sites to look "with it". A focus on logic, simplicity, and practicality of UI's and pages has been shot in the head point blank.
Re: (Score:2)
Almost everything with UI can be done properly using CSS3. The only thing missing are animation actions and then it would be complete.
Re: (Score:3)
The next thing missing are animation actions
FTFY. If you go down that road, it'll never stop. There's always going to be one more feature that's missing, and with new features comes bugs, and with bugs come security holes.
At the end of the day, you need something that's Turing-equivalent, so you can recombine known features in new and interesting ways. I just hope CSS doesn't end up being that Turing-equivalent something.
Re: (Score:2)
We could do that, but then how will we feed you advertisements?
Re: We don't need a new language (Score:2)
Lol, really? (Score:2)
I'd like to have some of the same medication that Douglas Crockford is on, but in a smaller dose.
Javascript really sucks (Score:5, Interesting)
But the one and only language that I felt was actually working against me was javascript. Damned script would pass all my tests, then fail on someone else's machine because they chose different options when installing, or had a different version, or just reasons. Note my scripts wouldn't actually fail, as in an error message. No, they just gave the wrong damned results.
I fucking hate Javascript with a passion and wish it would die by the end of the year.
Re:Javascript really sucks (Score:4, Insightful)
As a dev who primarily works in JS, I'm extremely curious to hear about this! When I talk about limitations of JS, I point out the shortcomings (lack of native 64-bit integer support, or anything other than its singular "number" type is a big one), their workarounds, then conclude by saying it will probably be addressed in the future. The ecmascript standards are very well specified, and compatibility is well mapped out.
Are you talking about node.js by chance? I'm confused about what was "installed" and what options were available. Normally js runs in a browser, and there's not much in the way of options when installing those. Are you talking about the language itself, or the environment such as npm modules?
I like to criticize c# myself, but I think the complaints more accurately pertain to the .net framework.
Please share some details, because I love to know about JS caveats and pitfalls and share them with others. Without this information, they sound like pebkac issues.
Wishing for JS to die out is for wusses. Why not be proactive about killing it off with a better alternative for browser providers to implement? What would you suggest? Samsung has a lot invested in their Tizen OS, and they're not about to abandon that any time soon.
Re: (Score:2)
Could be he's talking about client-side scripting and the DOM and not the language proper.
Re: (Score:2)
Yeah, testing for browser compatibility is such a hassle, and it's better than it's ever been, but sucks how IE's (non-edge) js engine is so slow!
I think you're right though. OP would say the same thing about Java if he had to deal with same bullshit I ran into during the visual j++ years when MS was in full embrace-and-extend mode. I probably still have the binaries they're not legally allowed to distribute in case of compatibility emergency.
Re: (Score:3)
> why should that be NaN? 1/0 is Infinity, not NaN.
Incorrect. You need to go back to school and review [mathforum.org] what divide by zero actually means.
However when a != 0, and b =0,
There is NO value of c that produces a.
Furthermore, mathematicians define division by zero as undefined because x/0 has TWO simultaneous values: +inf and -inf, depending on which side you approach x from: the negative side of zero, or the positive side of zero. The mathematical set of Reals
Re: (Score:3)
+1
I can learn a new language relatively fast. Any language, except for JS.
This clusterfuck of a language would rather return something than throw an error. Bugs appear apparently out of nowhere, because some data has been passed in the wrong format for the last 10 functions.
As an example :
'1' + 0.1 is '10.1'
but
'1' - 0.1 is 0.9
Then comes a JS 'expert' telling you "It's perfectly normal! It's been described in ECMAScript clusterfuck Specification"
Just for fun :
Arra
In other news... (Score:2)
We have been living in the PostScript world for quite some time.
Worse is Better, well mostly... (Score:2)
Many programming people are aware of Richard Gabriel's essays on why C and related languages became the dominant programming paradigm (
https://www.jwz.org/doc/worse-... [jwz.org]). In essence, sometimes those ugly compromises are just what people really want (or even need).
Many have argued that JavaScript is a excellent example of this phenomenon, but there's one big difference. Everybody is trying to replace JavaScript. Some are bolting on new keywords to the language, others are pushing features and some have just
Crockford's Legacy: It's time for E! (Score:4, Interesting)
Okay, so this might be a bit of a ramble. Hi, I'm one of the developers of Monte https://monte.rtfd.org/ [rtfd.org], a new programming language based on E. E http://erights.org/ [erights.org] is a language from the 90s. Crockford worked on E. E's TermL mini-language became JSON. Another person who worked on E was Mark Miller. Miller's thesis project was formalizing and describing systems built with E. Crockford and Miller both are part of the committees that steer JS.
Now, to bring it all together: Object capability security is a security discipline based on the principle of least authority and perfect encapsulation. It allows us to build secure distributed computations with pretty good security properties; wf-stringe can prove that certain data cannot be exfiltrated, that certain I/O cannot happen, and that certain computations are arbitrarily safe to evaluate. It's not perfect, but it's a massive improvement on the state of things.
E and Monte, as well as a few other languages like Caja, Pony, and Waterken, are object-capability languages. Just like languages without manual memory management cannot misbehave in certain ways, these languages also promise that they cannot fail in certain desirable security-related ways.
Crockford, Miller, and others have been deliberately steering JS towards more capability-safe constructions. The object model has been tightened up, and tools like weakmaps, promises, and "template strings" (we call them quasiliterals in the literature) have been added. However, JS is still defined by its weak points, and those points are weak indeed.
Obviously, my bias is towards Monte. It's my preferred language and I want it to be popular. But, more importantly, I want the ideas that went into Monte to be popular. So, in that spirit, I'm going to give you a short list of questions. I want you to think, "How can I do that in my favorite language? Why would I want it?" Monte is meant to be the next Blub http://wiki.c2.com/?BlubParadox [c2.com], the next language that is mediocre but built on a good foundation, and part of that is trying to see how Monte answers questions like:
Nit-picky grievances (Score:2)
So...he doesn't like it that there are two ways to declare variables? He doesn't like tabs? He doesn't get out much, does he!
evolution not revolution (Score:2)
Between languages like CoffeeScript and TypeScript and runtimes like WebAssembly, it looks like we have some pretty good ways of evolving gradually into a post-JavaScript world and are on our way there. No need to articulate grand visions.
Not tab vs space but "Dual bottom variables" (Score:4, Interesting)
I've read all comments as of this time and nobody seems to have taken note of his suggestion about bottom vars:
"There's an argument among language designers, should we have bottom values at all? But there's nobody who thinks you should have two of them."
I would like to _strongly_ disagree, you _do_ need two different kinds:
undefined (Not a Number/Not a Result) which traps if you try to use it, and none which means empty/ignore!
In the Mill cpu architecture (http://millcomputing.com/) we have those two different kinds and they make coding both easier/more elegant/more compact, and at the same time faster and more secure!
Another example:
I am currently on the group that works on the 2018 revision of the IEEE 754 (i.e. floating point) standard. In the original '754 version the "Not a Number" (NaN) type was defined as a way to create a "sticky" error marker in a numeric calculation. I.e. if you accidentally try to calculate 0/0 or Inf/Inf the result will be undefined, the operation might trap or not depending upon how your language runtime is setup, but the result will always be a NaN. There are two kinds of NaNs, Signaling NaN and Quiet NaN, the only difference is that the next time a SNaN is taken as input to an operation it will trap and then be converted to the equivalent QNaN while a QNaN as input will just propagate to the output.
It should be obvious that if your runtime initializes all FP variables to NaN, then any accidental use-before-load should be detected, right?
The problem is that for the 2008 (current) revision of the standard, enough people wanted a totally different behavior when searching for the maximum value in an array, typically used to scale a matrix: They managed to define minNum(a,NaN)/maxNum(NaN,b) so as to ignore any quiet NaN val
ues, always returning the other value. I.e. in those functions they got NaN to behave as None!
The real problem, and the main reason these functions are going away is how the definition above interact with the SNaN/QNaN rules:
maxNum(1.0, QNaN) -> 1.0
maxNum(QNaN, 1.0) -> 1.0
maxNum(1.0, SNaN) -> QNaN
maxNum(SNaN, 1.0) -> QNaN
So if you look for the maximum of 4 values, one of them a SNaN, the result will depend on the order of comparisons, i.e. if you do them pairwise you get this result:
max(1.0, SNaN, 2.0, 3.0) -> maxNum(maxNum(1.0, SNaN), maxNum(2.0, 3.0)) -> maxNum(QNaN, 3.0) -> 3.0
while taking alternate inputs results in
maxNum(maxNum(1.0, 2.0), maxNum(SNaN, 3.0)) -> maxNum(2.0, QNaN) -> 2.0
I.e. we would have been much better off here with a single bit pattern meaning None which would never propagate.
The sequential model of Fortran (Score:2)
Most languages have followed the sequential model of Fortran, executing one operation after another, he said. 'That's not how the world works anymore. We now have lots of cores available to us, which all want to be running at the same time.'"
That's pretty ironic, considering Fortran (at least F90 and up) has native parallel programming features. Namely vector/matrix math syntax, which decent compilers can turn into hardware-level parallelism.
Why wait? (Score:2)
No Script and Ad Blocker Plus are on all the time on my system. Why aren't they on for yours?
Not soon enough (Score:2)
Javascript can't die soon enough for my taste.
hindsight is 20/20... years (Score:2)
why don't you go 20 years in the past and fix it?
Re: (Score:2)
And while you're there, send me a message telling me to buy a shitload of those "bitcoins thingies".
Re:End it by eliminating spaces (Score:5, Funny)
Wellyoucan'teliminatedspacesbecausethey'dstillbeneeded.Soifyouwanttoeliminatejustonethingit'dhavetobetabs.
Re:End it by eliminating spaces (Score:4, Funny)
Is that German?
Re: (Score:3)
Its not Welsh, too many vowels...
Re: (Score:2)
Fits real well for tools that don't have your particular preferences baked in...
Every time I need to use whatever editor happens to be available on whatever platform I need to maintain on whatever day I maintain it, those damn tab settings screw over formatting.
Re: (Score:3)
What your argument boils down to is "I can't have my way all the time unless I force my way on everyone, so I'm going to be a
Re: (Score:3)
Would you prefer that applications that actually need those features instead be native applications that are specific to an operating system other than the one you use?
Re:No thanks (Score:5, Insightful)
Would you prefer that applications that actually need those features instead be native applications that are specific to an operating system other than the one you use?
Absolutely I prefer it. Native applications provide a much better experience vs. attempting to turn document viewers into general purpose operating systems.
There are a million different solutions to software portability. Our choices are far from shove everything into the browser or going without.
Putting everyone at unnecessary risk in pursuit of the goal of transforming document viewers into operating systems is as foolish as it is counterproductive.
Re: (Score:2)
Every I/O blocks, and when the program hits an I/O, the interpreter switches to another thread. Where have I heard that one before? Oh yeah: Python threading and the GIL.
Re: (Score:2)
I don't understand why the Web browser can't use whatever scripting languages I have installed. If I don't have installed the website tells me to install.
And when a particular language is available only for one proprietary web browser on one proprietary operating system, you're back to "Best viewed with Internet Explorer". Furthermore, the browser would need to heavily sandbox third-party installable languages in order to protect users from the sort of trojans that were common in the "codec pack" era, and sandboxing is patented [slashdot.org].
Re: Multicore is a real issue (Score:2)
Re: (Score:2)
After over 2 decades of programming I'm sick of "functional", "OO", "parallel", "strongly typed", "loosely typed", "actor based", etc languages. Every single esoteric or pseudo-esoteric language out there is fucking dumb (this includes c++ and c#.)
Thank you for saying what so many people here will not acknowledge or admit.
Re: (Score:2)
Tools for people should allow for any style, they should encompass all styles, and they should be infinitely adaptable
"When someone says 'I want a programming language in which I need only say what I wish done,' give him a lollipop." --Alan Perlis
Trying to use a language with a hundred or less keywords is just archaic, I want at least as many meaningful keywords as a toddler has to speak with.
Languages like that tend to be difficult for a team to work with, because no one knows every area well. Also, do you know how hard it is to memorize a thousand vocabulary words? It's a pain.
All the same, you might enjoy the Shakespeare programming language [wikipedia.org].
Re: (Score:2)
The Shakespeare language is actually very funny.
But, I understand what you want to say. HyperCard was a superb programming environment/framework. But the xTalk languages, that includes AppleScript, are a pain in the ass to program with. AppleScript is incredible powerful, but learning all the quirks is completely impossible.
For the guys who do not know about "Hypertalk" aka xTalk, as there are various variations of it, and don't know about AppleScript: those languages aim to be natural english language. Eve