Most(ly dead) Influential Programming Languages - <AUTHOR> https://hillelwayne.com/post/influential-dead-languages/ <comment><USER2> Another highly influential programming language not listed in the article is Self ([http://www.selflanguage.org](http://www.selflanguage.org)). Although I've taken two graduate-level courses in programming language theory, I didn't learn about Self until just a few years ago when I was bitten by the Smalltalk and Lisp bugs and started reading about the history of these languages and their environments. One of Self's most significant contributions is the idea of prototype-based programming, which is the influence behind JavaScript's traditional lack of classes (though newer versions of JavaScript have support for classes).

I don't know if Self was ever commercialized; I do know that once Java was released Sun focused much of its attention on promoting Java at the exclusion of other object-oriented environments that Sun invested in (such as the OpenStep Objective-C API, which was actually jointly developed by NeXT and Sun). But Self is probably one of the most influential programming languages; it's just a shame that this language was never brought up in any of the computer science courses I've taken.

<comment><USER3> I'm surprised Clojure isn't in the list either.

Edit: To clarify, Clojure is mostly a dead language that didn't have any innovations by itself, but it did influenced many programmers(the creator is good at marketing). It helped push forward the FP mindset into the users of other mainstream languages(js, python, java).

<comment><USER4> Is Clojure really "mostly dead"?

<comment><USER3> It has less market share than perl or delphi (make your own judgement). It was really hyped(rightfully so, a practical lisp for production use? fun! sign me in) then declined fast.

Like most(ly dead) languages, it still has its followers, in the case of clojure, mostly a cultish group (my impression from r/clojure and other forums).

<comment><USER5> Can you explain and support the idea that the number users using the language productively declined? The state of Clojure survey seems to have held steady at 2500 from 2015 to 2020 with 60% saying they used it for work in 2015 vs 69% saying they used it for work in 2020.

Going back to 2010 we see less than 500 respondents and only 27% using it for work. A charitable assumption is that it grew substantially between 2010 and 2015 and held steady between 2015 and 2020.

[https://clojure.org/news/2020/02/20/state-of- clojure-2020](https://clojure.org/news/2020/02/20/state-of-clojure-2020)

</comment></comment></comment></comment></comment><comment><USER6> I'm surprised by how hard this article is on Algol 68. It was pretty influential:

\- Influenced C's type system. I'm just going to quote Dennis Ritchie on this: "The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. The central notion I captured from Algol was a type structure based on atomic types (including structures), composed into arrays, pointers (references), and functions (procedures). Algol 68's concept of unions and casts also had an influence that appeared later."

\- Influenced bash's syntax (fi, esac)

\- I'm not sure if this counts as an influence or not, but objections to Algol 68's design lead Niklaus Wirth to revive his earlier proposal for a new version of Algol, called Algol W, and ultimately evolve it into Pascal.

<comment><USER7> That ALGOL-68 was hated by almost everyone who like previous ALGOL versions is not to be discounted.

ALGOL-68 was loved by people who would have never used ALGOL to begin with (and they didn't start doing so with ALGOL-68).

It was difficult to write compilers for, slow & far too complex.

<comment><USER8> Looking back at ALGOL-68, it looks like comparatively small language compared to many of our current languages, e.g. Java, C++ and Python. I loved the definition of it, but never got to use it.

<comment><USER7> That modern languages are even worse does not make ALGOL-68 good, in my opinion. It's understandable why people would like it, though, compared to modern languages.

</comment></comment></comment></comment><comment><USER9> Expecting to see Perl in an article like this in 5 to 10 years. Wasn't the first language I learned, but there's a fond place in my heart for it. At the time, it was the (only) less painful way to get at sockets, libc calls like getpwnam(), etc. I know the TIOBE index is flawed, but...ouch: [https://www.tiobe.com/tiobe-index/perl/](https://www.tiobe.com/tiobe- index/perl/)

<comment><USER10> But how how influential was it? It seems most of the unique ideas in Perl have not been adopted by other languages.

But if Perl can be credited with kick starting the dynamic language boom (Python, Ruby) then it have been massively influential.

<comment><USER9> I'd say it was pretty influential for Ruby, CGI-BIN, pcre, and other things that will live on in more refined forms. PHP has some obvious Perl influence as well.

Edit: Maybe also Perl's Configure (crazy wide cross-platform portability) and CPAN. They were pretty ahead of their time.

<comment><USER11> While I agree that Perl influenced Ruby which I guess in turn influenced CoffeeScript and Elixir to some degree, the lineage of PHP seems to be dead. I don't really know any languages that are inspired by PHP itself, other than maybe Hack which one could argue is very closely related to PHP.

<comment><USER12> I still write and actually still (sorta-kinda) like PHP, but there's no major concept/feature I can think of that's intrinsic to PHP rather than inherited from other languages. The Perl (and general "C-like language" influence is notable, and as PHP has matured it's started to feel ever more like Java. ("To write a simple PHP server app, first just initialize your PSR-11 compatible dependency injection container and add your PSR-7 compatible HTTP request/response handlers to it...")

<comment><USER9> The mixed code/template capability seems to have led to JSX.

</comment></comment></comment></comment></comment></comment><comment><USER13> I am sad that Forth did not make the list.

It showed how to make a minimal programming language that runs in a very small amount of space with just a stack. And did a lot to popularize RPN notation.

Even if you do not write in Forth, you can still benefit from knowing the ideas. For example I could not have written my answer at [https://stackoverflow.com/a/60817908/585411](https://stackoverflow.com/a/60817908/585411) if I did not know the ideas of Forth.

<comment><USER14> It was probably considered too "alive" in the embedded world to be on the list.

</comment></comment><comment><USER15> I'm a younger millennial (born in early 90s) who got his start with BASIC. The first programming I did was on Q-BASIC on our aging desktop machine (386 with Windows 3.1) that we didn't use for much, especially with very limited Internet use.

When I took programming in high school, we started with TI-BASIC on TI-83 calculators for about a month, as my programming teacher felt like this best replicated his experience learning programming on a TRS-80. I tend to agree, and this is a great use of BASIC. It's the default programming interface on a widely used computer to this day.

We then moved to VB6 for our "serious" programming, although we also did JavaScript and Java.

My first programming professionally was done in an office setting at a temp job using VBA to help with some Excel work. And then my first job as a software engineer, even though I wasn't writing it, did have some Visual Basic.NET floating around (most of my work was in C#).

<comment><USER16> I started to learn programming, by writing programs in TI-BASIC on the TI-84 (compatible with the 83) calculator. I just got it, because it was required to have a graphic calculator for math class.

It was just enough of a push. Small programs and games were fine and I actually got really used to the keyboard (I can still type on it pretty quickly these days). For longer programs I def. remember wanting to program with more monitor real estate and not having to rely on GOTOs. That's how I started to learn Python, which I still use daily.

<comment><USER17> Same. My TI-BASIC magnum opus was 527 lines of spaghetti code, implementing dozens of nested menus for solving any trigonometry problem I was assigned. I honestly think that this is one of the best ways to introduce programming to a kid: "Hey, that math homework looks pretty tedious...wouldn't it be nice if your calculator could do all the work for you?"

</comment></comment></comment><comment><USER18> Great article, I love learning more about language influence. I was wondering something:

> _Smalltalk wasn't the only casualty of the "Javapocalypse": Java also > marginalized Eiffel, Ada95, and pretty much everything else in the OOP > world. The interesting question isn't "Why did Smalltalk die", it's "Why did > C++ survive". I think it's because C++ had better C interop so was easier to > extend into legacy systems._

Maybe it's linked to performance? Even today some application are rewritten from Java to C++ (or clones are made) to gain performance (like with Cassandra and Scylla).

<comment><USER2> I have another theory about why Java beat other object-oriented programming languages except C++: cost. I can't speak for Eiffel and Ada since I'm unfamiliar with those environments, but in the mid-1990s Java caused a revolution of sorts by providing free-as-in-beer runtimes and development tools that were available for download. I don't know how good GNU G++ was in 1995, but I know that Borland's Turbo C++ and Microsoft's Visual C++ were affordably priced. By comparison, commercial Smalltalk implementations had expensive licensing fees, and in 1995 Squeak and Pharo didn't exist. There was also OpenStep and Objective-C, but that was also very expensive; this 1996 article from CNet ([https://www.cnet.com/news/next-gets-to- nt/](https://www.cnet.com/news/next-gets-to-nt/)) says that the Windows NT version of OpenStep cost $5,000 per developer and $25,000 for a version that allowed deployment.

With the high prices of Smalltalk and Objective-C environments, Java attracted a lot of companies and developers who wanted an object-oriented programming language that provided some of Smalltalk's benefits (e.g., garbage collection, memory safety, a rich standard library) without having to shell out the cash for a Smalltalk implementation.

<comment><USER19> But there was an affordable Smalltalk system in the early 1990s -- Digitalk's Smalltalk/V. It cost $99 and came with a huge manual that had a great tutorial. It introduced me (and lots of others) to the whole idea of object- orientation.

<comment><USER20> I've seen this several times. You need to get the stuff to the students who usually have no money to spare.

Emphasis on "NO". Affordable doesn't cut it.

If you can't download it from somewhere for free, something else will be used by students that will later determine what they'll use at their startups or companies.

Even better if it's legal to download for free.

<comment><USER19> I'm not denying that the modern world of open source tooling and online documentation is better, but in the 1980s-early-1990s that's just not how it was. Things like Turbo Pascal and Smalltalk/V cost money, but not that much, and were worth it because of the large printed manuals they included, which were needed because you couldn't just Google things.

<comment><USER20> I don't say that it wasn't worth it.

I say that it was an additional barrier to entry which got more significant the later we are in the 90s. That it was free was a significant boost for the popularity of Java (probably also the free JVM from Microsoft was a significant contributor).

In the early 80s you always had a programming language for free with your computer and often, those manuals were not bad either as that was seen as an additional selling point for the hardware and that's why the hardware producers did it.

</comment></comment></comment></comment></comment></comment><comment><USER21> The APL section seems a little off. I downloaded the latest Dyalog version and the RIDE IDE and it was all very simple to use. Despite having zero APL experience I wrote a pretty nifty program to simulate something in my domain in like 3 lines of code. The keyboard thing is a non-issue as the IDE let's you enter symbols and you quickly start to memorize that you can enter command-key r to enter rho and so forth. I've used the ASCII J before and find the APL glyphs help me learn what's going on better. It's right that it isn't a popular language, but that is sad. Dyalog has a lot of tools too from web server, database libraries, R & Python Bridges, GUI...and so forth.

<comment><USER22> I think it's fair to say that font issues were a significant reason for its decline in the late 80s and 90s (well before good unicode support). Other major factors were spreadsheets, which did many of the things APL was best at with an intuitive graphical interface, and OOP. APL didn't have OOP, so it was for dinosaurs. Structured programming could have had the same effect—mainstream APLs picked up ifs and while loops 10-20 years later than the rest of the world—but I think the usability gap between APL and anything else for arrays was just too large at the time for that to hurt APL too much.

<comment><USER21> Thanks Marshall. I'll yield to you in anything APL as I'm a total noob.

For those that don't recognize his username, I think he works for Dyalog in APL implementation. Is that right?

<comment><USER22> That's right.

</comment></comment></comment></comment><comment><USER23> I'm sorry Forth is not on that list. It could be argued that it was not so influential for mainstream languages, but there is a whole range of concatenative languages that can be considered direct descendants.

<comment><USER24> I think Forth's influence is more subterranean. I.e. PostScript and coreboot, etc. Forth is there, but rarely in your face.

As far as the underlying concepts, speaking as someone who has experimented recently with Joy (one of the concatenative languages you mention. although it wasn't directly influenced by Forth, I think, it's a case of convergent design), I think it's a shame it hasn't been more influential.

The time may come: check out Conal Elliot's Compiling to Categories.

<comment><USER23> Joy is a great language! I also wish it had been more influential.

Maybe you already knew this, but there are lots of great articles about Joy in nsl.com, and there is also Thun: [http://joypy.osdn.io/](http://joypy.osdn.io/) (which someone suggested me around here).

<comment><USER24> :D yeah, dude, that was _me_ (Thun, not nsl.) Cheers!

</comment></comment></comment></comment><comment><USER25> Both ML and Smalltalk are definitely not dead, not even mostly dead, they've just evolved into language families whose members have different names. The ML family has Standard ML, OCaml, and Haskell, and the Smalltalk family has Pharo, GemStone, GNU Smalltalk, and others. These all may not have hugely wide adoption, but they are actively used in both academia and industry, and continue to grow and evolve, and their continued evolution is still influencing other languages.

Ok, you can argue about the definition of "mostly dead", but whatever you decide these two just aren't in the same category as the others on this list.

<comment><USER26> Haskell isn't in the ML family. It is a descendant of Miranda and some other lazy functional languages.

<comment><USER25> Granted. 8-)

</comment></comment></comment><comment><USER27> I took two software engineering courses at MIT around 1990 that used CLU as the implementation language (one was a general medium-scale software engineering course, one was on writing compilers). I found it to be a very pleasant language, although the main thing I had to compare it to was C (C++ was just getting off the ground). It's always nice to see it mentioned in lists like these.

</comment><comment><USER28> > The interesting question isn't "Why did Smalltalk die", it's "Why did C++ > survive". I think it's because C++ had better C interop so was easier to > extend into legacy systems.

Video Games. From around 1999 to recently, C++ was the language of game development. It only recently came under serious threat, from C#.

<comment><USER29> Very bad example.

Video games community is very luddite in what concerns adoption of technologies, they usually only move forward when the platform owners force them to do so.

Many moons ago, C, Pascal, Modula-2, Basic were seen as Unity is seen nowadays, naturally real game devs had to use Assembly, specially to take care of the special purpose graphic and sprite engines.

Playstation 1 was probably the first console that force them to start using C instead, while on 16 bit.

So slowly everyone accepted that doing games in C, Pascal and what have wasn't that bad.

C++ only became kind of accepted years later, and even then it was more "C compiled with C++" than anything else.

The major boost for C++ were the OS vendors for home and office computers, Apple, IBM and Microsoft, alongside Zortech, Borland and Watcom, with their full stack C++ frameworks, something that ironically C++ has lost (OS C++ SDKs where it has the front role).

<comment><USER30> _> Video games community is very luddite in what concerns adoption of technologies, they usually only move forward when the platform owners force them to do so._

I think this is an unfair assessment. "Real devs" had to use assembly language because when targeting consoles and low-end home computers, this was the only really performant option for a long time. For a lot of types of games this doesn't matter so much, but there's a long ongoing trend in big titles really trying to cram as much visual fidelity as possible into the target machine.

Same deal with C++ today. You can use Unity of course, no one is any less of a "real game dev" because of it, but it's simply not an option if you want to work on cutting edge tech for AAA titles. There are tons of other things you may want to work on, other boundaries to push, which I think is why Unity is such a popular option. But I think it's unfair to simply chalk it up to luddism. Present the available alternatives that compare favorably in terms of development speed and performance for non-critical software instead.

<comment><USER29> While it might feel unfair, I wasn't attacking anyone on purpose, it is based on experience, from my demoscene days, to the friends I got to meet in the industry, to my former past as IGDA member, and the ways I have kept in touch with the industry, even though I have decided that the boring corporate world with graphics programming as hobby, was something I rather spend my time on than the typical studio life.

While the demands of gaming industry have always driven the hardware evolution on mainstream computing, most studios only move to newer programing languages when the platform owners force them to do so.

The gaming industry is not known for being early adopters of new software stacks, and many studios would to this day actually use pure C instead of C++ if the console vendors would give them C based SDKs.

<comment><USER28> I know several studios local to Vancouver that are making heavy use of Go, Swift or Rust. And of course, a few that are deep into HTML5. There are games being shipped written in mruby.

I'm not in agreement with your assessment that the industry is conservative; it is largely responsible for pushing graphics into programmable pipelines, for instance, and the vendor-preffered language lock-in for consoles hasn't really been a factor since the Indie revolution took the industry by storm.

<comment><USER29> I don't take indies into consideration on my remark, consoles and mobile OS is where the money is, and none of those languages have a place there currently, with exception of Swift on iOS.

<comment><USER28> Kotlin, Swift and Javascript are in plenty of mobile games. There are loads of HTML5 games on Steam. There are Switch games written in Ruby.

I get the impression you're an outsider looking in, relying on decades out of date personal experience to understand what they see.

<comment><USER29> Those are indie games.

Naturally Kotlin and Swift are in mobile games, they are part of the user space official SDK languages

<comment><USER28> I know for a fact that teams at EA are using such tech, as are teams at Microsoft and others.

Also, thumbing your nose at Indie games is odd, considering the sales they've enjoyed and the extent to which the industry has adjusted to adapt to their surge in popularity.

I can't imagine Nintendo in the 90s treating indie devs the way it treats them today.

<comment><USER29> Everyone is using Swift and Kotlin when targeting iOS and Android, it is either them or Objective-C and Java.

C++ doesn't have full access to OS APIs and some integration is always required.

<comment><USER28> What's your point? That you agree that game developers are using new technology?

<comment><USER29> Swift, Kotlin, Objective-C, Java are unavoidable when doing iOS and Android development, the OS features that are exposed to C and C++ aren'tt enough for doing a game.

Adoption is driven by platform owners.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> > _CLU might be the most influential language that nobody's ever heard of. > Iterators? CLU. Abstract data types? CLU. Generics? CLU. Checked exceptions? > CLU._

Well, I learned something new and I spend a lot of time reading about PL (and even teach undergrad PL!). Had never heard of CLU before.

<comment><USER32> I'm still trying to reconcile "most influential" with "nobody's ever heard of". It may be that CLU implemented in premiere some concepts, but if later those concepts may as well just have been _rediscovered_ (like the iterator design pattern) as the obvious thing to do, then what that leaves us?

<comment><USER24> > reconcile "most influential" with "nobody's ever heard of"

We ignore the past. I've worked with people who hadn't heard of Alan Kay. I worked with a guy tasked to revamp an expert system who had never heard of Prolog.

<comment><USER21> I work with a lot of people who write software and a few professional developers (~10-20 years experience in .NET & Java) and only one of them (has a computer science degree) has ever heard of Prolog and neither had ever heard of Smalltalk, APL, Forth, or Lisp when I brought them up around lunch. They're great at what they do and are much more experienced/talented than I at creating software, but it always makes me wonder why more professional software developers aren't more curious about the past and other alternative solutions. I can tell you how engineers did my job each decade going about 100 years back and how all the tools evolved over that time.

</comment></comment></comment></comment><comment><USER33> Glad to see a mention of CLU; it pioneered a _lot_ of ideas. Reading Joe Duffy's blogs about the Midori project (greenfield language/system design at Microsoft), he mentions CLU as an inspiration a number of times.

<comment><USER29> One can still play with CLU today,

[http://www.pmg.lcs.mit.edu/CLU.html](http://www.pmg.lcs.mit.edu/CLU.html)

I would already be more than happy if Go 2.0 generics would be CLU like, no need for something more fancy.

</comment></comment><comment><USER34> Interesting to see Pascal on the list - it was the language of choice in my high school and my first programming language, back in 2010. I haven't touched it since, but I do remember it was pretty easy for me to pickup the syntax, especially compared to languages I would learn later in uni, like say C.

<comment><USER35> Wait, Pascal was in use in 2010? I thought it was a dead language when I used it in high school in 1997-1998.

<comment><USER7> Pascal has been in an incredibly strange state of being both dead and alive simultaneously for the past thirty years.

...but yeah, it was definitely doing pretty good throughout the 1990s.

<comment><USER36> "That is not dead which can eternal lie, / And with strange aeons even languages may die."

</comment></comment></comment></comment><comment><USER37> Very surprised that ColdFusion isn't on this list. Say what you want about it, but remember this... You know how all you React, VueJS and frontend developers just LOOOOOVE components... Yeah... ColdFusion had that first in what was called "Custom Tags". Heck... It had alot of features that you find today in almost every other language, but it is dying a SLOOOOOOOOW death.

<comment><USER38> ColdFusion had much more limited exposure to the general world than say PHP. Also, arguably and IMNSHO, ColdFusion was quite _bad_ at a lot of its own features. Custom Tags specifically as the given example, were barely more than duct tape over SSI (Server-Side Includes) and never really had a "proper" Component model or DOM for most (if not all, again IMNSHO) of its history.

(CF is a language on my list of hopes to never see again.)

</comment></comment><comment><USER39> There are a few things present in COBOL that I would like to see lifted into more modern languages. One is the use of the full stop as an expression terminator, as in English, instead of the semicolon. Another is the whole "picture" mechanism for number formats.

More languages should also steal Verilog's use of _ as an optional digit separator. It's just arrived in C# 7.

<comment><USER40> If we start using periods to end expressions, would we then have to use semicolons to chain things together? Or would you let the compiler know that foo.size(). was okay and that it shouldn't be waiting around for another function call there?

<comment><USER41> Juxtaposition (`foo size()`) is a serious contender I think. In fact, I consider it is one of the most undervalued syntactic choices.

<comment><USER38> In HS I built a toy language where it was `foo's size()`, if you want to play even further down the English-like rabbit hole, even trying to stick to BNF- ish CFGs. `'s` is actually a surprisingly unambiguous token in a language without a "char type" and that sticks to double quotes only for strings.

</comment></comment></comment></comment><comment><USER42> I linked to something on Erights.org a few days ago [http://www.erights.org/](http://www.erights.org/)

I think E was more influential than its distribution would suggest.

<comment><USER43> As cool as E was, it was almost entirely based on core ideas lifted from Joule and KeyKOS. I can't really see any influence beyond a "wouldn't it be great if language X had feature Y like you find in E".

<comment><USER42> I was also thinking of the community, as they moved out into other languages and carried some ideas with them that they maybe got exposed to in the E community.

<comment><USER44> Are there active languages influenced by E? I came across that erights site years ago, and I always meant to learn more about it.

<comment><USER45> the concept of promises as used in JavaScript comes from E

<comment><USER43> Promises for async results has been around for decades and E got the idea from Joule.

</comment></comment></comment></comment></comment></comment><comment><USER46> The ML section misses out some significant successors: there was a fork between CAML and SML. Ocaml is still widely used, and has its own spawn such as ReasonML and BuckleScript.

<comment><USER11> Neither ReasonML nor BuckleScript are really OCaml descendants. ReasonML is a different syntax for OCaml, with even closer match than CoffeeScript 1.x had to JS. Compiled ReasonML code cannot be distinguished from code that was written in OCaml. BuckleScript OTOH is a set of forks of older compiler versions which have a JS backend. It works with both Reason and OCaml syntax.

ReasonML therefore is much closer to the revised OCaml syntax (a failed previous alternate syntax) than it is to its own language.

</comment></comment><comment><USER47> Lisp?

(ducks for cover)

I know someone writing Smalltalk on a daily basis for this system: [https://kyma.symbolicsound.com/](https://kyma.symbolicsound.com/)

<comment><USER48> The article is about "mostly dead" languages. Lisp lives on under many forms, Common Lisp, Clojure and Racket being some of the more popular ones.

If we're only talking about influential languages, I'd agree with you and put lisp on the top.

<comment><USER47> I was being slightly facetious knowing the crowd round these parts.

</comment></comment></comment><comment><USER49> > At a time when adding two lists of numbers meant a map or a loop, APL > introduced the idea of operating on the entire array at once.

Am I missing something, how is this different from a map?

<comment><USER50> It keeps going!

          3 3 3 ⍴ ⍳10

         1  2 3
         4  5 6
         7  8 9

        10  1 2
         3  4 5
         6  7 8

         9 10 1
         2  3 4
         5  6 7

          M ← 3 3 3 ⍴ ⍳10

          M*M

        1.00000E0  4.00000E0  2.70000E1
        2.56000E2  3.12500E3  4.66560E4
        8.23543E5  1.67772E7  3.87420E8

        1.00000E10 1.00000E0  4.00000E0
        2.70000E1  2.56000E2  3.12500E3
        4.66560E4  8.23543E5  1.67772E7

        3.87420E8  1.00000E10 1.00000E0
        4.00000E0  2.70000E1  2.56000E2
        3.12500E3  4.66560E4  8.23543E5

That's 3 nested 3x3 matrices, and we take the pointwise product of each of them with just the usual multiplication operator.

How many maps did you want?

<comment><USER51> Isn't that a pointwise exponentiation (1^1, 2^2, 3^3, ...)?

<comment><USER52> Yes it is; APL uses × for multiplication.

</comment></comment></comment></comment><comment><USER53> For all the mentions of FORTRAN in the description of other languages, it's a real surprise that FORTRAN doesn't rate a mention of its own -- though there are corners of the world where it's still in use.

It's notable not only for being the Lingua Franca of scientific computing through at least the '80s, but also for breaking ground in programming language technology, starting right at the beginning -- the Fortran I compiler, for the IBM 704 in 1957, was the first to have an optimizer (and the technical papers on that compiler introduced terminology which has since become standard to the field -- e.g. "basic block").

<comment><USER54> If you leave the HN/SV bubble, you find huge amounts of Fortran. It's still plays a significant role in scientific computing. If you lost track of it in the '80s, you might be interested that the language had major updates in '90, '95, '03, '08 and 2018. It's just not a part of the world of cat pix sharing websites and innumerable "Foo of Bar" startups.

Same with COBOL.

<comment><USER55> One thing I credit COBOL with is the use of descriptive variable naming. In FORTRAN you see variables named i, j, x etc (just look at Numerical Recipes) but in COBOL you see TOTAL_MONTH_SALES and the like. It is considered good style and "self-documenting" to do that today.

<comment><USER54> COBOL was intended from the start to be "self-documenting" and English-like with the thinking being that it could be used by 'non-programmers' to create business logic. Not sure that I buy it achieved that goal, but it was the intent.

</comment></comment></comment></comment><comment><USER44> That was an incredibly interesting article. I never quite grasped the historical significance of CLU.

Something I always wonder about COBOL, since it has so little influence on other languages, is if there are good ideas that we missed out on.

<comment><USER56> ABAP which runs in all of SAP systems in Fortune 500 companies as an ERP is derived from COBOL. The core product has 400Million lines. Extensions would be 4X

</comment></comment><comment><USER57> No one is doing anything new in COBOL but there is so much old stuff that could only be replaced by a massive investment in rebuilding infrastructure. COBOL isn't dying anytime soon.

At one point, like 10-15 years ago, I knew experienced well paid COBOL programmers being laid off and being replaced by kids fresh out of school. And then CS programs, if not outright stopped, at least greatly reduced teaching COBOL courses. And no one coming out of school learning Java and Python and Node wants to write COBOL.

And then old timer COBOL programmers started retiring, but companies (especially banks) were not replacing their existing mainframe infrastructure. So now you have a gap between supply (COBOL programmers) and demand ( mostly banks), to the point that retired programmers are doing part time work for $200 an hour. Here's an article from 4 years ago;

[https://www.reuters.com/article/us-usa-banks-cobol/banks- scr...](https://www.reuters.com/article/us-usa-banks-cobol/banks-scramble-to- fix-old-systems-as-it-cowboys-ride-into-sunset-idUSKBN17C0D8)

<comment><USER54> I know at several dozen companies in my state alone who are still "doing something new" in COBOL, including the company I currently work for. No, that's not just maintenance, it's new apps and projects. Most of these are on a 'Fortune' list in terms of size.

Startups and small companies can ignore anything that isn't new and shiny; companies processing billions of dollars/transaction know better.

</comment></comment><comment><USER58> Pascal have two moments which really peak. Turbo pascal and Apple Mac. After that not sure what its use. Ucsd pascal always slow.

<comment><USER59> Does anyone know whether Turbo Pascal DOS/Windows compiler produced slower code than C compilers at the time? For a long time I was sticking with Pascal and resisted switching to C, even when everyone around me was doing so. One thing I do seem to remember from that time was that the things people were coding up in C seemed to work faster (not sure if it was Borland's Turbo C or something else). It was one of the arguments I remember for leaving Pascal.

Am I misremembering and it was just an urban legend/marketing from C compilers? Thinking back it doesn't seem logical that C would offer any significant performance benefits - both Pascal and C were compiled down to machine code and had approximately the same levels of abstraction.

<comment><USER29> Urban legend, as Borland fanboy, using their Pascal and C++ products, the generated binaries were pretty much the same, even if you might had to play with compiler pragmas, like disabling bounds checking for example.

In MS-DOS days, if you actually cared about performance, a macro Assembler was the only way to achieve it.

<comment><USER60> Borland Pascal had built in assembly which was very easy to use and integrated with the rest of the language. This let me have DOS program that had it's own high performance graphics for GUI (I basically stole Motif visual design with some adaptations) and proprietary preemptive multithreading. C programs venturing into same realm were not really any faster and had to use assembly anyways for performance critical parts.

<comment><USER29> Yes, that is how I used it as well.

To share a similar anecdote I was so proud of myself having created my own mouse support unit, that I then used to plug into a couple of BGI based applications.

</comment></comment></comment></comment></comment><comment><USER61> Why I think Pascal is gone for commercial use. Back in the mid-80's I was working on a new project on PCs under DOS. Our first choice language was Pascal. However, sometimes we needed to write at low levels for performance, or to access hardware directly, or call Fortran code. For all of these reasons, we switched to C.

<comment><USER38> At least one simplified view of the death of Pascal is the rise and fall of Borland. Borland's compilers were the fastest. Borland invested more in FFI work and C-interop than competitors. Eventually Pascal was Borland (and vice versa), because no commercial entity (in the 90s-ish) was using a non-Borland Pascal compiler. Borland making bad business decisions and Microsoft making good business decisions in poaching key Borland staff at the right moments, seems like some obvious death nails in Pascal's coffin. (Obviously that's still a very simplified narrative to history, but it is an easy and common one.)

</comment></comment><comment><USER62> Interesting stuff!

Is there a kind of web archive of programming languages? Can we make sure their compilers, interpreters, etc. are not lost? Sure, there are issues of them being proprietary, or needing some virtualization to run; I'm just wondering.

<comment><USER63> [http://www.softwarepreservation.org/projects](http://www.softwarepreservation.org/projects) Is a start.

</comment></comment><comment><USER64> If you're at all interested in this topic and have access to the ACM library, the 'History Of Programming Languages' (HOPL) conference includes papers on these and many other languages and is fascinating reading.

<comment><USER64> And they just opened this up today! [https://dl.acm.org/action/doSearch?AllField=HOPL&startPage=&...](https://dl.acm.org/action/doSearch?AllField=HOPL&startPage=&LimitedContentGroupKey=10.1145%2F154766)

</comment></comment><comment><USER65> Nice article. Missed one thing about PL1 that I think it got first and that you see nowadays in most languages (other than low-level languages like go and C) and most large programs -- a hierarchy of error types, blocks of code to catch errors (exceptions) according to type, and the ability to replace one error-handler with another temporarily within a narrower scope. Not to say that this is good, but it is what we've got.

</comment><comment><USER66> I wonder which of these languages are completely inaccessible today? As in you can't run them on any modern machine or even find an emulator for them.

<comment><USER67> That's an interesting question. I was going to guess CLU, but I was very wrong: there are native VAX and SPARC implementations, a Portable CLU implementation, and even a CLU-to-C compiler. Impressive for a language I hadn't heard of before today!

[http://www.pmg.lcs.mit.edu/CLU.html](http://www.pmg.lcs.mit.edu/CLU.html)

</comment></comment><comment><USER68> This article echos a lot of the themes that I saw in "Family spaghetti of programming languages" ([https://erkin.party/blog/190208/spaghetti/](https://erkin.party/blog/190208/spaghetti/)) which seems to be the best attempt at developing a family tree of programming languages I've seen thus far.

<comment><USER6> Ooh, I really like the idea of this, but I kinda wish he broke Fortran into a whole family, with separate entries for each major version. There was a lot of cross-influence between Algol and Fortran, and while the original Fortran inspired Algol, Algol ended up as a massive influence on how Fortran developed later.

</comment></comment><comment> V-2 _" COBOL was also enormously complex, even for today's languages"_

Is that true? What was the complexity about? I've never done COBOL, but I was always under impression that it was quite straightforward in its infamous clunkiness, lacking lots of constructs that've been obvious for decades now

<comment><USER69> I don't know but there's the ALTER (and maybe a COMEFROM) ?

</comment></comment><comment><USER70> _" almost all of logic programming actually stems from Prolog"_

Why isn't Prolog on the list then?? :O

<comment><USER71> is Prolog deader than the logic programming systems stemming from it? The field seems fairly niche overall, but from the limited insight I have Prolog seems to be still around?

<comment><USER70> My thought was that prolog is now mostly used in colleges around the world to teach students basic concepts within AI. Correct me if I'm wrong though. Would love to see examples where Prolog is used in real life!

<comment><USER71> Academic work certainly seems to still use it, and I've seen it once or twice for "business rule" type stuff. That's not much, but I can't remember much else in this direction either.

I guess constraint solvers like Z3 are in the same category kind of(?), but I don't know if/how their syntaxes are related.

</comment></comment></comment></comment><comment><USER72> I did my Master's (1994) work with Smalltalk (specifically Little Smalltalk) and I still play around with Squeak when I have some free time. Not exactly producing production code, obviously, but you can build things for yourself and there's nothing wrong with that.

</comment><comment><USER73> Reads like the graveyard of my high school and college languages

BASIC 1970 high school computer hacking

LISP 1972 MIT A.I. course

APL 1973 MIT circuits course

PL/I 1973 MIT systems programming course

OS360 Assembly MIT systems programming course

FORTRAN 1974 MIT physics research

C 1976 Stanford research

PASCAL, ObjectPASCAL 1984 Macintosh developer

ObjectiveC 1987 NeXT Developer

C++ 1986 scientific programming

Java 1994 scientific programming

</comment><comment><USER74> I'm surprised that Ada isn't listed

<comment><USER8> Mentioned only in passing as one of the languages that Java sqashed.

</comment></comment><comment><USER9> 360 Assembler and Flash/ActionScript seem like good additions to the list.

<comment><USER75> What did ActionScript influence?

<comment><USER76> TypeScript, I'd say.

<comment><USER38> Also TC39's efforts in all of JavaScript just about ever since. ActionScript's ES4 efforts left a lot of scars and that "lost version" of JavaScript is quite influential in the very least for how much ES2015+ _avoids_ ES4/ActionScript ideas/problems/concerns as much as it learns from them and eventually reincorporates some of them.

</comment></comment></comment></comment><comment><USER77> I love both languages (well c99 anyways), but I feel like Pascal/C is like betamax/vhs.

I think I it didn't help that free Pascal compliers were harder to come by. IIIRC

<comment><USER78> I've seen multiple statements from people that Pascal was a better language than C, but I absolutely love the VHS/BETA-Max analogy (it contains a lot of context which usually take a good deal longer to write out in the pascal vs c discussions). My education and experience effectively skipped Pascal, other than mentions that it existed. So, do you have any off the cuff reading or materials that demonstrate where Pascal shines? I'd be interesting to see if any of Pascal's qualities that made it 'better than C' were ripe for plucking out and putting in another language.

<comment><USER77> I haven't used Pascal in 20 years. I learned it in cs/AP cs (literally the last year it was on the apcs exam), used it for my high school science fair project and in my senior year I self taught and rewrote it to c++ and never went back.

Looked at Eiffel for a hot sec in college but it never stuck, because no toolchain for beos, which I used in college.

These days I program in elixir, and am learning Zig.

</comment></comment></comment><comment><USER79> I started off with BASIC, FORTRAN, and Pascal (as higher-level languages). I also used PERL and PL/1.

I don't miss them too much, but they were important stepping stones.

</comment><comment><USER80> Anyone else here written BCPL? I must be one of very few people to have used it at _two_ different jobs.

</comment><comment><USER81> No mention of Snobol? Precursor. Only saw it in texts though of Perl

</comment><comment><USER82> RPG? Or is that encompassed by Cobol...</comment>


Integrate Github Into an API Community - <AUTHOR> http://blog.apievangelist.com/2011/04/02/integrate-github-into-an-api-community/ <comment><USER2> This entire post is basically making the point that Github is awesome. Seriously? Where have you been? Hey, ever hear about JSON? How this made it to HN is beyond me.

<comment><AUTHOR> LOL....I've known Github is awesome for a long time man.

Not everyone is in the echo chamber. The goal of API Evangelist is to reach out beyond the chamber...and share the tools that we use to be successful.

I don't see Github used in very many API areas, and think its "awesomeness" should spread.

<comment><USER3> As someone who also works in the business of helping companies with developer platforms, api strategies, etc I would concur with this sentiment.

The types of folks and companies/startups that are already using this good stuff are not our audience. There are a ton of people out there running platforms or wanting to build APIs on top of their stuff that have no freaking clue what GitHub is because they have their own processess.

That's why they hire people like us to help them understand where the developers are and how to incorporate the types of tools developers on HN feel at home with so that their API offerings don't feel unfamiliar.

Welcome to the business of APIs</comment></comment></comment>


The costly criminalisation of the mentally ill - <AUTHOR> http://www.economist.com/news/united-states/21582535-costly-criminalisation-mentally-ill-locked <comment><USER2> I am an HN regular, and a forensic psychiatrist. Every day I work with mentally ill people who have been charged with crimes. I don't have much to add here except to say thanks for taking an interest.

The mentally ill and the incarcerated are two of the most deeply marginalized groups in our society. It's nice that someone outside of our world is thinking about them.

<comment><USER3> Well, I wish you would add more. You'd surely have more of value and experience to say than almost anybody here. But I hope that doesn't sound demanding--I really appreciate your comment.

<comment><USER2> I'd be happy to say more, but probably the most important thing people can do is read the article. Lack of adequate services for the mentally ill is a huge issue. In the absence of services, they often end up behaving oddly enough for someone to call the police, leading to arrest. More and more often we see families who are relieved that their loved ones are arrested _just to get access to treatment_.

That seems like a real shame, and often their needs are a bad fit for the correctional system. I work in a forensic hospital, and most of our patients come from jails. They often do not get very good care there. Private hospitals are largely closing their psychiatric units, because they don't make money. More and more, state or county funded hospitals and clinics are the last stop, and those (as mentioned in the article) are popular targets for defunding when the budget gets rough. It's a bad situation.

At any rate, I'll check in again in the morning if anyone else has more questions.

<comment><USER4> My aunt is in that situation. She is severely mentally ill and homeless. She was in a shelter until a few months ago, no one has heard from her since. No one else in the family can afford to get her treatment, and she wouldn't comply even if we tried - she doesn't know she's mentally ill, she thinks her delusions are reality. We would all be relieved if she landed in jail as long as it came with some treatment. She is very intelligent, though, and she is not using drugs or alcohol, so she may never get herself in enough trouble to land in jail.

Committing people to treatment against their will sounds like a bad idea just begging for abuse, but what else can we do? In what world could she actually be taken care of? I don't know the answer.

<comment><USER2> Involuntary commitment is the reality for many people. Sometimes the delusions recede enough that they recognize they are ill.

I would encourage you to look for a support group for family members. Sometimes it helps to know other people are struggling with the same issues, and see how they cope with those issues when there's not a solution.

</comment></comment></comment></comment></comment><comment><USER5> I see many comments here about developers upset about being treated as "just a developer."

Well, if you want to be respected as more than "just a developer," you'll need to understand more about the real world. Specifically people.

If that doesn't convince you, look at it this way: healthcare is a huge, growing, and technologically behind-the-curve industry. It offers a huge market for your services. Mental healthcare needs better solutions.

Also, I have met my share of severally mentally disturbed developers. So this could be any of us we're talking about.

<comment><USER6> Agreed. I don't mean to construct a strawman here. However, it surprises me how this is not relevant. Code doesn't exist in vacuum. Ultimately, software engineering is about applying yourself to solve real world problems. Including mental health care. No one crawled out of the woodwork when 7 cups of tea announced their product. Yet the opposition for this is surprising. How does one understand and solve a problem like that unless one is aware of one's society? An interesting problem requires discovery. That requires awareness of the world.

</comment></comment><comment><USER7> "...taking something without paying at Wholefoods Market; but when two security guards came after her and she thought they were attacking her, she fought back. This led to a felony charge for robbery."

I'm very curious about Melissa's case now. Shoplifting ain't felony robbery, obviously, and over-aggressive security staff have been known to injure or kill people[1][2], so "thought they were attacking her" is a legitimate concern.

[1] - [http://azstarnet.com/news/local/crime/ex-guard-convicted- sho...](http://azstarnet.com/news/local/crime/ex-guard-convicted-shot- paralyzed-shoplift-suspect/article_194c01f7-2d05-5f64-ab89-f3eb506c408d.html) [2] - [http://jezebel.com/5967072/woman-shot-dead-by-walmart- securi...](http://jezebel.com/5967072/woman-shot-dead-by-walmart-security- guard-on-suspicion-of-shoplifting)

</comment><comment><USER8> The article uses a woman as an example and gives her crimes as: "trespassing, prostitution, drugs, disorderly conduct, petty theft, drinking in public".

The petty theft is later discussed as theft from a supermarket, probably of some small food item.

As to the others, why should any of them be imprisonable offenses? Drinking in public? Drugs? Prostitution?

Trespassing is not breaking and entering, which is reasonable as an imprisonable offense. Shouldn't trespassing be an infraction with a modest fine?

Back to that food item she took from Whole Foods. In a fabulously wealthy nation, how is it that she has come to need to shoplift food to be able to eat. Is that not a failure of the society as a whole?

The proposed answer in the article is to have them committed by some sort of court order and place them indefinitely in a "secure nursing home" facility with an ankle bracelet. That's likely to be more costly than prison since it requires round the clock medical care, and is no better than a prison since they are locked up.

I propose a better solution. Decriminalize all of these things, leave this woman alone, and save the $719,436 it cost to imprison her for minor and non- offenses.

The article also makes the claim, "If someone decides he wants to walk around naked, or cannot give his name to a police officer, the likelihood is that he will end up in jail." If police are arresting people without probable cause or even reasonable suspicion, then it is the police that are acting illegally here. You are not required to identify yourself to any police officer just because he asks, and if he asks without reasonable suspicion or probable cause (it depends on the state which one is the threshold), and you refuse to state your name, then he can not arrest you for that sole reason. If he attempts to do so, it is false arrest, and you have the right under the law, upheld by the supreme court, to use any necessary force to resist illegal arrest.

Regarding walking around naked, that is permitted or tolerated in some areas such as nude beaches. There are also issues where people ask why it is that it is legal for men to go topless, yet is criminal for women to go topless? Should not the law apply equally to both men and women? That is a reasonable question and there is no answer that justifies this discrimination that is not intrinsically sexist. Is that what we want? What is so wrong with even total nudity? There is an old man in Barcelona who is well known for going about completely naked, wearing only his tattoos, pierced foreskin and often a full erection. The police do not bother him.

[http://chrisrako.blogspot.com/2007/05/naked-man-of- barcelona...](http://chrisrako.blogspot.com/2007/05/naked-man-of- barcelona.html)

Has Spanish society collapsed as a result? Is it obvious he should be in prison as The Economist advocates as common sense?

Or consider the Jainists, many of who walk about India naked because of their religious beliefs. Are they criminals as well?

[http://s781.photobucket.com/albums/yy95/phuongvien_bucket/Do...](http://s781.photobucket.com/albums/yy95/phuongvien_bucket/Doc1.jpg)

I propose that public nudity and refusing to give your name to police when they have no cause to ask it are both fundamental rights of man and that any society which denies these rights is tyrannical and any person who denies these rights is an enemy of humanity.

<comment><USER9> _> I propose that public nudity and refusing to give your name to police when they have no cause to ask it are both fundamental rights of man and that any society which denies these rights is tyrannical and any person who denies these rights is an enemy of humanity._

Whoa, whoa, whoa.... whoa. I like to think of myself as open-minded but I'm not ready for that just yet. That being said, San Francisco apparently has no punishment for being nude in public and yet I've only seen nudity in public twice in the 6 years of having a full-time job there. So maybe it should be removed from the law and most people will continue to cover-up out of personal modesty.

<comment><USER10> Honestly, I think if public nudity was common, no-one would care about it. When you go to the beach and see people in swimming costumes, there isn't really much left to the imagination. You can already pretty much figure out what they look like naked, but no-one cares, we're all used to it. Society just places a weird importance on nipples and genitals. But just women's nipples. Even though men's nipples kind of look the same anyway. You could take a swimsuit catalogue and cut the nipples off the men and glue them onto the women and turn it into porn.

If you think about it, we're just animals. It's really crazy that we can't just walk around in our natural state freely because we tend to feel really weird about looking at other members of our own species.

What if I've got it backwards and other animals are just as prudish? When a dog is barking at another dog, maybe he's really saying, "hey, check out this weirdo - he's naked! Get the hell out of here, you pervert!"

<comment><USER11> "swimming costumes"... are you British? :)

But yes, this apprehension of nudity is something I've always found so bizarre. Why is seeing skin of our species such a big deal? At what point of our social evolution did it evolve that way (because the idea of clothing is pretty universal to humans).

<comment><USER12> The idea of clothing isn't quite universal, but nearly so. Still, we're something of an outlier in how serious our nudity taboo is. As far as I can tell most cultures are ok with women going around topless and most think that it's ok for men and women to see each other naked when bathing, though I guess Hollywood is changing that.

</comment></comment></comment></comment></comment><comment><USER13> I was on vacation last week, went to the Puget Sound area in Washington. Downtown Seattle has the usual homeless people wandering around like most cities in the U.S.. We went to Victoria BC in Canada one afternoon. No homeless beggars threatening the pedestrians. Crazy Canadians and their healthcare system, getting the mentally ill off the streets.

<comment><USER14> So you're comparing a major US city of 3.4M people (greater Seattle area) to a small Canadian city of 344K (greater Victoria area)?

I've lived in several major Canadian cities during my lifetime and the homeless problem is huge, particularly in Vancouver. Universal healthcare doesn't do much if the person refuses treatment.

</comment></comment><comment><USER15> "SINCE 1994 Tracey Aldridge has been arrested 100 times, jailed 27 times for more than 1,000 days and spent a total of eight years in prison."

The math does not add up. There were not 27000 days since 1994. Did I misinterpret something?

<comment><USER16> I assume that means 1000 days total, not 1000 days per incarceration.

</comment></comment><comment><USER17> The article doesn't mention the diagnosis of "Personality disorder". This is a difficult and controversial diagnosis, but it's important for this kind of article.

We'll hear about people who don't take their meds (this thread has such comments) but these people aren't the main problem. People with a probable diagnosis of PD are the problem.

Some numbers from the mostly rural UK county of Gloucestershire:

Population is roughly 800,000 people. There are about 4,500 people on the books of specialist MH services at any time. There are about 2,000 people with a probably psychotic illness. There are about 2,500 people with a probably mood disorder. There are between 20,000 and 30,000 people with a probable personality disorder.

Looking at the psychotic and mood disorders, and putting it very simply, you hospitalise for a short time while you stabilise the illness and sort out the meds. Then you release the patient back to the community with intense support from community workers (daily, weekly, monthly visits). You give an easy route back into services when these people need it. You also provide vocational support - help people back into work and to integrate back into society.

Now look at what happens to people with a personality disorder. There's no real treatment. This used to mean they were specifically excluded from treatment - turned away from specialist MH services. That doesn't happen anymore, but there's not much that can be done. And behaviours are often much closer to "bad" than "mad", and so criminal justice is involved a lot more than MH services.

Here's a harrowing Grauniad article ([http://www.theguardian.com/society/2008/mar/30/prisonsandpro...](http://www.theguardian.com/society/2008/mar/30/prisonsandprobation.mentalhealth)) (contains description of self harm and suicidal behaviour)

> _On the day Diane Kent set herself on fire in her cell at Low Newton prison, > County Durham, two months ago, she had already tried to hang herself twice > and asked a prison officer to take away her lighter because she was scared > of harming herself. According to incomplete prison records, her request was > refused._

This woman's burns were so severe she was kept in a medically induced coma for 5 weeks.

Women who attempt suicide by arson are sometimes put in prison ([http://www.oxfordmail.co.uk/news/8389188.Woman_locked_up_for...](http://www.oxfordmail.co.uk/news/8389188.Woman_locked_up_for_arson_suicide_attempts/)) for endangering life.

Here's another example, again traumatic reading. ([http://www.theguardian.com/society/2008/feb/03/prisonsandpro...](http://www.theguardian.com/society/2008/feb/03/prisonsandprobation.mentalhealth))

And this is in the UK where we have much better services than the US. God only knows what it's like over there.

</comment><comment><USER18> How about all reporting of sentences including a) the cost of the trial, and b) the cost of the sentence?

</comment><comment><USER19> Great example of something that does not belong here. A social political issue with absolutely _zero_ to do with tech or hacker news! Why is this getting upvotes?

<comment><USER3> I believe you're wrong here. HN is not just about tech. It has always had room for substantive articles about anything interesting. Is this article substantive? I'd say it's surprisingly so, for such a short piece. It contains a mix of anecdote, data, and history. I learned three or four things I didn't know, and I've read occasional stuff on this issue in the past.

The graph alone is worth the visit.

<comment><USER20> Economist is also a quality news source. I'd rather have articles from the Economist make the front page over sensationalist/uninformed tech articles from The Register or similar sites that lack substance.</comment></comment></comment>


Ask HN: Fun ways to learn Javascript for a 12 year old beginner? - <AUTHOR> My 12 y/o niece started off playing with HTML a while ago, and then worked her way up to a bit of rudimentary copy+paste+tinker Javascript coding.
I'm looking for fun tutorials/frameworks/etc. to show her, so that she can build cool stuff and get the hang of coding.
I'd like to introduce her to processing.js, but I can't find tutorials (their learning section just seems to have demos sans explanation or how-to).
Once she gets a bit more comfortable I'd like to introduce her to a bit of game stuff (maybe via LOVE or PyGame) and then some other coding so she can do simple web programming (node.js? PHP? Python?).
So, any recommendations on any of the above? What do I start with and where do I go from here?
PS. I find Squeak a HORRIBLE environment and really quite unintuitive, so that's probably out -- unless you've got some compelling tutorial/package that makes it otherwise.
Thanks so much!! <comment><USER2> This is off tangent, but I fell in love with computing through Lego Mindstorms. It is the most amazing gift you can give to a child. Just imagine how it feels to be 12 and to put these blocks together and then you see them move! After that you can teach it to do stuff! I can make whatever I want!

It's an understatement that Lego Mindstorms changed my life. The best thing about it is that it teaches things in ways that I could easily grasp be it concepts of computing like decision trees or torque. Before I even knew what those words were I knew, somehow, what they meant. Torque meant that if I tried to make a prosthetic hand then I couldn't place a motor at the end of the forearm as it would kill the motor lifting it no matter how much I would gear it up. Why? Because it was like a door which I could push and it got easier to push the farther away I was from the hinge. Hence, it is easier for the weight to push the arm down at that end!

Moreover, you can teach her programming through languages for the NXT. There are derivatives of C/C++, ASM, Python, Java, Ruby, MATLAB, Ada and other projects lying around on the internet (see: <http://en.wikipedia.org/wiki/Lego_Mindstorms_NXT#Programming>).

I've tried to repeat this with all types of kids in my neighborhood and it works. Even for the most impatient kids it is a hook that gets them interested in how the world works. It's just magic.

[edit: I made some horrible dyslexic errors. Sorry about that. If there are any more left then please forgive me.]

<comment><AUTHOR> I'm planning on getting her that if it seems like a lasting interest and not just a passing one :)

<comment><USER2> By the way, what is her environment like?

Just be wary if she suddenly loses interest. It has more to do with teasing by peers and implicit models enforced by adults than her interests. If she does lose interest then just accept it and hug her while telling her that you'll love her no matter what. Also, spend an equal amount of time with her on stuff that she likes. No matter how far out of your domain it is. Kids really need role models like you and need to spend time with adults like you.

It's something so obvious but it makes a world of difference to a child.

Good luck.

P.S. - I would love to continue this conversation through email if you want. (yesthisisananonymousid gmail)

</comment></comment></comment><comment><USER3> I think you should introduce her to Raphaeljs (<http://www.raphaeljs.com>) and let her explore javascript by making things that she can see and interact with and show off to her friends.

Bonus: A perfect IDE for her would probably be jsFiddle (<http://jsfiddle.net/>). Including a library is as easy as selecting it from a combo-box (yes, Raphael is one of them). When she wants, and/or is ready, she can try jQuery/Mootools and others in the same place too.

Good luck!

PS: Squeak isn't exactly horrible but I must that its it's looks is a big turn off, especially for people used to the generally slick interfaces of popular apps these days.

<comment><AUTHOR> PERFECT! Thanks so much for the link to Raphael!

</comment></comment><comment><USER4> I don't know about your niece, but if I'd be 12 again I think Scheme would have been ideal because the syntax is actually very easy and the language is very explicit (that's important for someone without programming experience). She, of course, does not need to learn about continuations, macros etc. only the basics.

Although python (2.6) looks easy it has its ambiguities (for newcomers to programming); list.sort() <-> sorted(), default arguments issues, scoping issues, if a statement doesn't fit a line you have to enclose it in parantheses... the list goes on. Lua and _especially_ Javascript aren't better either.

I can only say, although I had some experience in functional programming, that scheme was really an eye opening experience when I learned it in university. Plus, it made things clearer about things I did with Javascript/Python in the past.

DrScheme is a great environment for learning Scheme and programming in general and there is tons of learning material about scheme. Maybe that <http://world.cs.brown.edu/> is something for your niece (I haven't read it).

Going from Scheme to Lua/Python/Javascript is then a small step and you have a saner picture about what happens in those languages.

Also going from Scheme to Lua won't be such a cultural shock. Just like the list is the primary data structure in Scheme the table is the primary data structure in Lua. And with Lua under her belt she can try LÖVE.

BTW, I think pygame is too low level. One can argue it is better for learning the concepts but I don't know. When I was younger I wanted to have results fast. In that respect I think LÖVE is better. And although I would not recommend Java for your niece there is a nice game framework called Pulpcore which let's you quickly get something done.

<comment><AUTHOR> Do you know of anything "wow" inducing in Scheme?

<comment><USER4> Well, that is highly subjective of course but I give you some examples:

\- The fact that the syntax is almost constantly of this form _(function arguments)_ and that you can create sophisticated "blocks" out of a small set of language features

\- Recursion is an essential part of the language it is fun to implement algorithms that way

\- Great IDE (DrScheme)

It all boils down to that you have a simplistic, consistent, "small" language without ambiguities and a rapid feedback if you use DrScheme (because of the REPL, Debugger...).

If you hint at something graphics wise with "wow" I can tell you that our instructors showed us some games in scheme that other students created as assignments (we implemented minesweeper) and source code wise they were quite good. They, however, gave us their hombrew object oriented pack that we should use. And this is another "wow" in Scheme (and probably in any other LISP). You can build your own object system - something that would be impossible in for example Java... (albeit it is possible in lua through metatables and also in javascript and theoretically should be possible in Python, too. However the flexibility regarding the syntax is on scheme's side). Frankly, implementing an object system would be overkill for your niece but the fact that it is (relatively easy) possible is a "wow" IMHO.

If you install the DrScheme Environment you get a lot of example applications (Card Games...). So you can easily get something visual done in DrScheme.

* I have to note that I'm talking about Racket Scheme (formerly PLT Scheme)

</comment></comment></comment><comment><USER5> To counter what some folks are saying here. JavaScript is a fine introductory programming language. I highly suggest getting the latest version of Node.js which comes with a REPL. Other than that, Python comes with an interactive shell that's available on all platforms. It's definitely a good learner language.

</comment><comment><USER6> You could also start with Hackety Hack, a platform developed by Why The Lucky Stiff to teach kids programming. It builds on top of Ruby, but comes with a very cool development environment.

<comment><USER7> Thanks for the shout out! (I'm now the maintainer.)

We're gearing up for a 1.0 on August 19, here's the site, for more info: <http://hackety-hack.com/>

</comment></comment><comment><USER8> How's this? <http://eloquentjavascript.net/>

Might be a bit too cut and dry for a 12 year old, but it's got some nice interactive parts to it.

<comment><USER9> On the contrary, I feel it's as close to Why's Poignant Guide any Javascript tutorial has got so far. It reads well and the interactive console is really helpful. I'm 2x12 old, admittedly, but for me this was a really good way to learn JS better.

</comment></comment><comment><USER10> I will go with Scheme. Is a easy small language, is easy to manipulate, and teach very valuable lessons like recursion, high order functions, etc ...

DrScheme/DrRacket are very good environment, and allow many kind of programming styles.

Other Options.

== Scratch Scratch was created to allow kids to create applications, games, animations and interactive stories. It also was created to help teach math and computational lessons

Scratch is written on Squeak.

== Squeak. Squeak is an open-source implementation of Smalltalk, that includes many tools, Etoys, Croquet.

"Squeak: Learn Programming with Robots" it is a good book for kids.

== Alice. Alice has been used to create interactive games, animations and videos. The interactive environment allows you to directly manipulate and test the objects and programming statements.

The Alice programming environment was designed as a gentle introduction to object-oriented programming and allows beginners, programmers and non- programmers to learn the basics of automation, multimedia, and program logic.

</comment><comment><USER11> I don't know of any good Javascript learning platforms off the top of my head, but I think you'll want to aim for some form of immediate gratification.

One thing you could do is whip up a sandbox page, like what w3schools does with its examples. Basically, create a page with three primary elements: a text box containing the Javascript, an Update button, and a section containing the actual content being messed with. You could come up with multiple "tutorials" or "activities" using this concept, and the Canvas tutorial below [1] is a neat example.

[1] <http://billmill.org/static/canvastutorial/>

</comment><comment><USER12> Isn't Scratch (<http://scratch.mit.edu/>) made exactly for this scenario? I used it with PicoCrickets (<http://www.picocricket.com/>), which is tiny programmable brick like LEGO Mindstorms. I find GUI-based programming a lot easier to use when starting; otherwise you're trying to not only learn how to write a program but you're dealing with learning an IDE / text editor, running programs, etc.

</comment><comment><USER13> Check out Alice (<http://www.alice.org>) or Kodu (<http://research.microsoft.com/en-us/projects/kodu/>). They're both very visually-oriented languages; great to teach the basics of coding, without having to introduce someone to technical terms right off the bat.

</comment><comment><USER14> Unless she's really into web stuff for some reason, I'd steer clear of JavaScript. I never had much fun hacking on JavaScript, personally, and I find it to be a somewhat harsh mistress. Python is a nice, clean, fun language; you already mentioned PyGame, so why not just go straight to Python?

</comment><comment><USER15> for how to make games w/ python, invent with python (<http://inventwithpython.com/>) is pretty cool and free

</comment><comment><USER16> Here <http://www.w3schools.com/js/js_intro.asp>

Tell her also to learn css to complete the trinity.

</comment><comment><USER17> I think javascript is a good language to start with b/c she can make fun web pages.

Check out the Sammy framework:

       http://github.com/quirkey/sammy

</comment><comment><USER18> Mit Scratch is amazing. The related google app creator for android should also be huge.

</comment><comment><USER19> Firebug is a good interactive console to play with Javascript inside the browser.

</comment><comment><USER20> i'd start with PHP rather then JS since she already knows html

</comment><comment><USER21> You should start with Haskell and teach her monads.

Just kidding :)

If your intent is to have her get the hang of _programming_ , javascript probably isn't the best language. There's a lot of overhead involved in running a simple program such as

        Enter your name:
        > Alice
        Hi, Alice!
        Enter your age:
         > 20
        Alice, your age minus 10 is 10!

As I'm sure you know, javascript is used to manipulate the DOM and process data entered by the user in forms. Any sane person will tell you to just use jQuery -- plain javascript requires a lot of boiler-plate non-business-logic code to replicate the above example. At that point you're just learning jQuery, which is useful knowledge, but very domain specific.

I started with BASIC but obviously today I would recommend Python. Python has a REPL like javascript with Chrome or Firefox with Firebug, but unlike javascript you can easily write up some code and run it in the command line. A really important benefit of Python is that the interpreter will give you good debugging information (not properly indented, variable not initialized) whereas IMO javascript doesn't have such great error messages.

That said, if you still wish to have her learn javascript, <http://www.w3schools.com/js/default.asp> is probably the best site. It's where I learned.

<comment><USER22> >> "Any sane person will tell you to just use jQuery -- plain javascript requires a lot of boiler-plate non-business-logic code to replicate the above example"

BS. Also I'd suggest a book is far better than anything like w3schools. There's a ton of good js books which go through examples and tutorials. "Javascript the definitive guide" is extremely good.

First step though is to get used to the js console within browsers, and play around. For example, load up google, open the js console, and start messing...

document.body.style.background="green";

etc

<comment><USER21> What exactly are you calling BS on?

<comment><USER22> The line I quoted.

Maybe I'm just insane. But adding a pointless layer of abstraction to manipulating the DOM is.... pointless.

<comment><USER21> The second part of that line was referring to javascript in general as compared to other languages.

And I think you are insane :) I've never met a single developer (besides you apparently) who prefers the tedium of raw javascript DOM manipulation to jQuery's abstracted methodology.

I'll take

        var i = $('.someclass:first').next().val()

over the equivalent raw javascript any day of the week.

<comment><USER22> There's a lot of us about ;)

That syntax you quote is not something I like, and isn't something that will run fast on browsers either.

$('') is quite ugly. Any typos inside that string won't be caught. Also I don't find chaining to improve code readability.

Dealing with the DOM directly means you can optimize properly. For example, say you want to get an input elements value, in js you'd do:

theInputElement.value

Since you probably created or referenced the input element from js earlier and saved a ref to it...

<comment><USER21> If it works for you, more power to you. :)</comment></comment></comment></comment></comment></comment></comment>


IEEE P2413 – Standard for an Architectural Framework for the IoT - <AUTHOR> https://standards.ieee.org/develop/project/2413.html <comment><AUTHOR> See also the Industrial Internet Consortium's RAII:

[http://www.iiconsortium.org/IIRA-1-7-ajs.pdf](http://www.iiconsortium.org/IIRA-1-7-ajs.pdf)

and Plattform Industrie's RAMI 4.0:

[http://www.zvei.org/Downloads/Automation/5305%20Publikation%...](http://www.zvei.org/Downloads/Automation/5305%20Publikation%20GMA%20Status%20Report%20ZVEI%20Reference%20Architecture%20Model.pdf)

Obviously, the _Industrial_ IoT has a set of concerns that may or may not be shared with other IoT sectors (or the IoT in general), but there is broad overlap when it comes to defining standards.</comment>


Dean Hickerson's Game of Life page - <AUTHOR> http://www.radicaleye.com/DRH/life.html <comment><USER2> Cool. I just clicked around to find a web-based viewer of these rules & found: <http://www.collidoscope.com/cgolve/golpatternviewer.html>

And paste in e.g. one of the crystal & decay oscillators:

x = 77, y = 91, rule = B3/S23

5b2o$5b2o3$5bo$4bobo$3bo3bo$3b5o16b2o$2b2o3b2o15bobo$3b5o11b2o6bo11bob o$4b3o8b2obo2bo2bo2bo10bo2bo4bo$5bo9b2o2b2o6bo9b2o5b2o$24bobo8b2o3bo8b 2o$24b2o11b2o10b2o$29bo8bo2bo$4bo22b2o10bobo$6b2o20b2o$5b3o$5b2o$6bo$ 5bobo$6b2o$20bobo$20b2o$2obob2o14bo2$o5bo6bo$14b2o$b2ob2o7b2o$3bo3$35b o$33b3o$3b2o15bobo9bo$3b2o16b2o9b2o$21bo6$20b2o$20bo$21b3o$23bo25$66b 2o6b2o$58bo6bo2bo4bo2bo$59b2o4bo2bo4bo2bo$58b2o5bo2bo4bo2bo$66b2o6b2o 7$60bo$60bo$59bobo$60bo$60bo$60bo$60bo$59bobo$60bo$60bo!</comment>


Universal Music CEO Doug Morris Speaks: Recording Industry in Even Deeper Sh*t Than We Thought - <AUTHOR> http://nymag.com/daily/entertainment/2007/11/universal_music_ceo_doug_morris.html

<comment><USER2> _I wouldn't be able to recognize a good technology person_

Cop out. Any idiot could say, "Hire me a division head from Microsoft" or whatever. The technology is quite simple, and having missed the boat the record industry is going to have to go with plan B: Cut costs and lower prices.

I watched a movie the other day and went to amazon to read the reviews--I was shocked to see that the soundtrack was 50 percent more expensive than the DVD. Obviously, an unsustainable model.

</comment><comment><USER3> I believe every word of what he says. A friend of mine once organized concerts. These guys that hang around the music business are dumb as dogshit.</comment>


What's your definition of 'winning'? - <AUTHOR> http://zellunit.com/2008/03/21/whats-your-definition-of-winning/

<comment><USER2> "There is only one success, to be able to live your life in your own way." --Christopher Morley

I don't understand what someone will do with their billions if it's not work with the people you enjoy working with solving problems for other people.

"Little do ye know your own blessedness; for to travel hopefully is a better thing than to arrive, and the true success is to labour." Robert Louis Stevenson

</comment><comment><USER3> That's one way of looking at it, but I'd bet a lot of other people see it differently. All depends on your goals in life...

<comment><AUTHOR> yea for sure there are different kinds of people out there and i do acknowledge that, i am just asking from a strictly professional sense how you should approach career and so forth?

</comment></comment><comment><USER4> I thought this was really insightful. The other posts on zellunit's blog are really good too.

</comment><comment><USER5> worth reading.</comment>


Chernobyl Is Going to Become a Solar Farm - <AUTHOR> http://www.popularmechanics.com/science/green-tech/a23979/solar-farm-chernobyl/ <comment><USER2> Pretty neat idea. The article seemed a little light on details though. Are the transmission lines still adequate to transmit the energy?</comment>


Seeking FriendFeed users for HeadUp private alpha - <AUTHOR>

SemantiNet (www.semantinet.com) is currently seeking some hackers to join our private alpha and help us test our product.
HeadUp is a browser addon that acts as a personalized content recommendation agent while you browse the web.
In short, it understands which site you are currently viewing, as well as what "entities or objects" exist on the page, and it discovers and retrieves semantically related content from other sites.
Relevancy is determined based on what's the object that you are viewing, who you are, what you are interested in, who are your friends and what they do online, etc…
Such information is retrieved using various popular sites.
Our users' privacy is maintained by storing all private content locally on their computers rather than on our servers.
In order to use the product, you must be running firefox on windows, and you need to have Silverlight 2.0 installed.
At this point, we believe that our product offers the greatest value to active friendfeed users. You can see a short video about the product at www.semantinet.com/videos
If you are interested, please drop me an email at talk (at) semantinet.com and I will invite you to the alpha.
-Tal <comment><USER2> I don't run Silverlight, but it sounds good.</comment>


Simple 8-Channel Logic Analyzer - <AUTHOR> http://www.saleae.com/home/

<comment><USER2> The link brings you to an information-free landing page.</comment>


Maptcha: An Experiment in Map-Based CAPTCHA - <AUTHOR> http://maptcha.com/

<comment><USER2> The first example is not indicative of the actual difficulty because the letters are pink (this is noted, but still).

Beyond that, the examples use extremely hard to see letters... that completely defeats the purpose. There's no need if the challenging part for the computer is detecting satellite imagery.

There are multiple letters on some of the images, sometimes hovering between two images. Again, why? The computer is going to have no problem divvying up the images, but the ambiguity is confusing for humans.

Make the letters _as easy to read as possible_ please. If that breaks your captcha, find a new captcha method.

<comment><USER2> In fact (and I can't believe I didn't think of this before, why have letters at all?!? The user has to scan over the images then go back to the text field and enter in characters. Why not just click to select?

</comment></comment><comment><USER3> I like how you are thinking outside the box a bit.

Having said that, there are a couple of issues: 1) This is really not a hard problem for a computer to solve. Detecting different image types is pretty trivial. You made it a lot easier by making the letters sit in the boxes in a regular manner. 2) A high percentage of captchas are now broken by humans, instead of robots. This is not a problem you will likely encounter in a small site, though.

(1) Is an easier problem to solve. You could do "input the letters near the cat", or "input the letters near the map of florida".

(2) Is harder, but most of the people who break captchas live in 3rd world countries, so you could possibly arbitrage cultural knowledge (see florida example above). They will catch on pretty damn quick, though.

<comment><USER4> (2) Could be looked up by someone easily, and could potentially turn foreign readers/customers off for no good reason.

I think you're better off just banning IPs. You can get a blacklist to start if you're really worried about it.

<comment><USER3> IP banning usually doesn't work, since that was the first countermeasure employed.

The captcha farms got a lot better at using large proxies/gateways to hide their traffic.

</comment></comment></comment><comment><USER5> At OpenStreetMap we would love a map-based CAPTCHA that actually contributes to our map. Right now we (like most people) use ReCAPTCHA on our wiki... which has the rather exasperating effect of contributing map data (StreetView house numbers) to our main competitor, Google.

On the upside, you can usually type a wrong number into the ReCAPTCHA. ;)

<comment><USER6> I'd love to help - drop me a line at email@example.com and maybe I can help devise a method that can fulfill both your aims.

</comment></comment><comment><USER7> It's not very quick or readable, and it's not useful for users with impaired vision.

Technically it has two weaknesses:

\- non-map images are chosen from a small set. Good implementation will need equally large set of non-map (and presumably non-offensive and deceptively map-like) images.

\- satellite photos don't seem very hard to identify, e.g. even using histogram as an input to a simple classification algorithm could give decent accuracy (gray/brown/dark green color scheme dominates) and tree shadows, cars and rooftops may be easy features to detect with fancier algorithms.

</comment><comment><USER6> Hi everybody, designer here. I really appreciate all the feedback; this concept is still in its infancy and can obviously use quite a bit of improvement, but I'm trying to tweak it as best I can to maximize its usability.

Couple of notes: 1\. The ultimate intention is to either pull images (both satellite and decoy) from the web as they are needed or create a database of images and update it regularly. Thus identifying images as real or decoy will only work on a short-term basis; there will always be new images entering the fold.

2\. If people like this concept well enough to keep at it, I'm planning to automate some kind of color-matching scheme so that it's not possible to just look at the histograms of the images and identify the satellite images thusly.

3\. I'm only just starting to learn about OCR, so at this moment I have no idea whether it's worth bothering to disguise letters or even whether it's worth using letters at all. I prefer having a two-tiered approach; having to ID a satellite image AND identify characters. If the bots are too good at identifying the characters and/or it's too hard for humans, that just leaves the satellite question and from what I've read that's not a high enough level of entropy.

4\. I don't have anything lined up for an audio solution just yet. I'm fooling around with a few concepts, but nothing worth mentioning just yet.

5\. Thanks to all those who wrote in suggestions/solutions and signed up!

</comment><comment><USER8> No images are displayed in Firefox. I just see the pink letters. Works fine in Chrome. IE just shows nothing except a black bar on the left.

</comment><comment><USER9> An interesting approach, although one line of javascript will solve all samples beyond the first one (didn't bother writing extra code to handle your demo case):

$('.trueletterimage').each(function () {$('#userdata').val($('#userdata').val() + $(this).attr('src').split('.')[0].split('/')[1])});

Copy paste into the console and enjoy.

Ok, obviously the above is mostly in jest. I always enjoy seeing new captchas, despite most having major flaws. I do have to echo other comments that mention the user difficulty issue. Using this in production would require more explanatory text than your average captcha, and it does seem to take a little longer to figure out than, say, a recaptcha image. That said, likely the bigger issue is one of image classification allowing bots to solve most of them.

<comment><USER10> the above is also directly ignoring the text immediately below on the page:

 _This is dumb! I already figured out how to crack_ _it, and yes, of course I realize that the production_ _version will render the MAPTCHA as a single image,_ _not as separate elements, and it will draw from a_ _practically limitless database of images._

I'm not saying this is a good captcha, but if your first response is seriously to not read any of the text on the page and go for the easy "hey, look how dumb this is" answer, are you really trying hard enough?

<comment><USER9> I did read that. And that is why I added the "in jest" part, followed by my serious comment. However, rereading my comment, I should have said "in jest" instead of "mostly in jest."

<comment><USER10> ah, I can re-read and see how that is meant as a joke specifically targeting the text I quoted. Gotta love the internets, where no one can hear your intonation and subtleties

<comment><USER9> Indeed. On the plus side, with this comment chain, I doubt that anybody else will miss the subtlety.

</comment></comment></comment></comment></comment><comment><USER11> one thing i found very irritating: in one of the tests that asked to type the group of letters where the image is from satellite, i find the group "y p k a 1" but the answer i got was 'wrong, group is "k p y a 1"'. if i am not mistaken, based on the mathematical definition of the group, groups "y p k a 1" and "k p y a 1" are the same

<comment><USER6> Updated to allow any order input; shouldn't be an issue anymore.

</comment></comment><comment><USER12> Great idea but I don't think it's the solution to the captcha problem. There's a lot of visual noise for a person to analyse and I found it considerably harder than reCaptcha types. However that may be a bonus for deterring human solved captcha à la deathbycaptcha.com

</comment><comment><USER13> I was expecting "click on Tennessee" and then a region of the US - which might actually be an appropriate captcha if you assume the site users know US state geography.

This however, is difficult to read for a human and probably easy to write a bot for.

</comment><comment><USER14> This should be accompanied by an image classifier to demonstrate its effectiveness.

My guess is the contiguous nature of the satellite images might make the problem a bit easier, sort of like Battleship.

</comment><comment><USER15> Apparently street view cars are also considered as satellite photos.

</comment><comment><USER16> It's good that there's effort going into improving captchas but IMO the big issue is finding something that also works for users with poor or no sight.

</comment><comment><USER17> Order shouldn't matter for the result. ie: 3ypg1 should be just as valid as 3pyg1. Not everyone scans images top-left, going right, to bottom-right.

<comment><USER18> This might have been my downfall too, personally it was more of a scan over the entire image and type letters as I see satellite images, didn't even notice I was doing it like that until I saw your comment. I read something a while back how "left brain hemisphere" people scan sequentially and "right hemisphere" people jump in to find things at random. I can't speak for its accuracy or its place in reality but the end result is that this thing could do with accepting values in any order.

Not sure if that'd make the whole thing less useful however..

<comment><USER6> I don't think that would make it less useful; either the bot reads it right or it doesn't, the leeway introduced by allowing any order input is miniscule, I think. So I updated it so it won't get fussy about order.

</comment></comment></comment><comment><USER19> It's so bot safe that even a human can't solve this!

Finally a good way to keep potential Customers from using your product!

<comment><USER18> Yeah I got around a 50% success rate, maybe I'm just more robot than man these days :(

</comment></comment><comment><USER20> I guess fine as an exercise but, wow, is this awful from almost every perspective (usability, space usage, difficulty to crack).

</comment><comment><USER21> I was expecting this to be a random lat/lng and asking you to pick (for example) the most prominent feature displayed in the map. A major city or a famous mountain or something.

</comment><comment><USER22> In general, wouldn't this be easy to crack too if the bot writer can write a good image-to-text recogniter?

[http://techcrunch.com/2012/03/29/google-now-using- recaptcha-...](http://techcrunch.com/2012/03/29/google-now-using-recaptcha-to- decode-street-view-addresses/)</comment>


How GE Went from American Icon to Astonishing Mess - <AUTHOR> https://www.bloomberg.com/news/features/2018-02-01/how-ge-went-from-american-icon-to-astonishing-mess <comment><USER2> Welch replaced innovation with cost-cutting and financial trickery, yet he is hailed as a business hero even today

</comment><comment><USER3> I suspect the culture that led to cutting 10% of low performers was part of why manufacturing went to the Japanese. It is known for example that part of why DRAM was beaten by the Japanese in the 1980s was cooperation instead of competition.

<comment><USER4> Can you explain this a little more? How do you think cutting bottom 10% performers affected GE as a company?

<comment><USER5> There is by now a large literature on the destructive effects of Welch-style "rank and yank" management (see [https://en.wikipedia.org/wiki/Vitality_curve#Consequences](https://en.wikipedia.org/wiki/Vitality_curve#Consequences)).

Since whoever comes out on the bottom of the evaluation list will be fired, for instance, employees are incentivized to sabotage each others' work to make sure that it's someone else left without a chair when the music stops; and managers are incentivized to deliberately hire underqualified people to fill open positions, so they can protect their good workers by having a designated loser to throw to the wolves when evaluation time comes.

<comment><USER3> I am not even talking about the problem with the practice itself. I am talking about the culture that caused the practice in the first place.

</comment></comment></comment></comment><comment><USER6> Many of the American tech titans of past years are fading (see IBM, Kodak, Xerox).

I wonder how much of this is due to the "cult of the MBA", which focuses on short-term optimization of shareholder benefit, rather than long-term thinking, true innovation, etc.

<comment><USER7> I think it has more to do with the difficulty of responding to market changes. If you are running a successful company that dominates a particular market, it is HARD to make big changes, even if you foresee that the market is going to change under you.

DEC was a great minicomputer company. But it just couldn't make the change to the microcomputer era, despite formidable management and technical expertise.

Kodak was making all kinds of crazy money from film and photo paper, which made them really slow on the draw when the market shifted under them and moved to digital photography.

<comment><USER8> It's both. Kodak was slow on the draw because making the big investments early on to move to digital photography would have pissed off shareholders who would percieve the move as a drain on the coffers and hurting 'Kodak's bottom line'.

You can see this with other companies today (IBM, Intel, Microsoft, etc) that are struggling to stay relevant in areas where they have not traditionally been, they don't have the stomach to make the long term investments early enough, and if they do, they don't stick with them long enough.

</comment></comment></comment><comment><USER9> > Immelt talked about making GE a "top 10 software company"

I thought this was interesting in particular. After years of cutting back on R&D, Immelt makes a top-down push in a direction that GE had allowed to lie fallow for decades, into a market already dominated by strong competitors. Why not play your strengths? GE's days as a computing pioneer are so long gone, they're practically lost to memory.

<comment><USER10> I still don't understand the spin-out/carve-out of GE Appliances. The most consumer-facing strength of the company and one of the few profit centers that remained profitable across centuries of industry. (GE Appliances is now just the US arm of Chinese conglomerate Haier. Similar to IBM carving out so much of their hardware and selling it to Lenovo for short-term gains and what may prove to be long-term mistakes.)

</comment></comment><comment><USER11> I interviewed for a big position at GE Security about a decade ago. The nice but uninformed Director of Engineering starts quizzing me, asks if I've heard of "Object-Oriented Programming," as if it was some new thing.

I asked him the last album he bought; he said, "Free Bird." (which isn't even an album).

This forever shaped my opinion of GE.

</comment><comment><USER12> As an Australian I'd always associated GE with light bulbs.

It was a culture shock to visit the USA and notice the saturation advertising for GE finance. It smelled of desperation.

</comment><comment><USER13> Companies rise and companies fall. Nothing is permanent. The story itself may be interesting, but the concept is far from new.

</comment><comment><USER14> GE is dying and Tesla is rising. How ironic!

<comment><USER15> Yeah except Tesla wasn't started by Tesla, it just uses his name. Using the name "Tesla" unconnected to the man himself to promote your own business and personal success is totally something Edison would've done.

</comment></comment><comment><USER16> Looks like GE wants to go the way of Motorola.

</comment><comment><USER17> How America went from icon to astonishing mess.

<comment><USER4> The DOW grew by 40% in the past one year.

<comment><USER6> Just curious how you got that figure.

[https://finance.yahoo.com/quote/^DJI/chart?p=^DJI](https://finance.yahoo.com/quote/^DJI/chart?p=^DJI)

(25800 - 19800)/19800 = 30.3%</comment></comment></comment>


India's citizenship law: what is it and why has it stirred such anger? - <AUTHOR> https://www.ft.com/content/b96a33c4-247e-11ea-9a4f-963f0ec7e134 <comment><USER2> According to a poll, the majority of Indians do support the law. Most Muslims do not, but 35% do.

[https://news.abplive.com/news/india/abp-cvoter-survey-on- cit...](https://news.abplive.com/news/india/abp-cvoter-survey-on-citizenship- act-62-indians-support-caa-65-want-pan-india-nrc-too-1129900) ABP-CVoter Survey On Citizenship Act: 62% Indians Support CAA, 65% Want Pan-India NRC Too New Delhi: In the wake of ongoing nationwide protests against the controversial Citizenship Amendment Act (CAA), ABP New along with C-Voter brings to you an exclusive survey to find out whether the newly introduced law is for the betterment of the country or not.

The snap poll was carried out on over 3,000 citizens across the country between December 17 to 19 with booster sample of over 500 people each in Assam, the northeast and Muslim community collected during the same period.

The survey stated majority of the people believe that the Citizenship Amendment Act introduced by the Central government is not against the Muslim community. According to the survey, 56 per cent people think that CAA is not against Muslim community and will only rule out illegal immigrants living in the country. However, 32 per cent of the participants feel that the law is against the Muslim community. 8 per cent people, in the survey, said that they do not know about the act, whereas 4 per cent said that CAA is against everyone.

The survey also revealed that among Muslims, 63 per cent were against the act, 35 supported it and 1 per cent said that they they don't know or cannot comment. In the Hindus, 67 per cent supported the Act and 32 per cent opposed it.</comment>


SanFran Gentrification - <AUTHOR> http://www.bloomberg.com/video/tech-world-responds-to-perkins-1-nazi-comparison-NYTDczfXSLGTBOuKU1E4OA.html

<comment><AUTHOR> If you can get past the first few minutes discussing the non-sense nazi topic there's an interesting conversation about SanFran's current dilemma.

Not from there so it really hit home when I realized the less privileged residents are being evicted from their places to make room for wealthier tenants.</comment>