Ceylon

From: DaWorm 
------------------------------------------------------
http://linux.slashdot.org/story/13/11/13/162230/red-hat-releases-ceylon-language-100

I've been coding for over 30 years, and I have no idea what half of that
description is saying.

subtype and parametric polymorphism
declaration-site variance
intersection types
principal types
local type inference
flow-dependent typing
tuple types
comprehensions
fully-reified generic types

I know basic polymorphism, and have heard of tuples, but otherwise, I have
no idea what this does for me.  I guess I'm just too old.

Jeff.

=============================================================== From: Dave Brockman ------------------------------------------------------ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ROFL, I'm glad I'm not the only one who read that and didn't anything more than before I had read it. I have a definition for tuples from router/firewall programming, I can't think of a reason for it to exist in a general purpose programming language.... Regards, dtb -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (MingW32) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJShVkWAAoJEMP+wtEOVbcdT+YH/2z+YjLDFuugdH+sngJL1ZJs ovqwTjo+y2DODCbNsNZMs32QLXjlsV1uv38D9HUtKC1QGTY759y2Oq/cFEZwArhq GF8nmPJP/6AqyM64souH774rt4XvVR+/W7ynIQARuPdOypMgx/ovaLjpxKNcdKuI uVELct5Ss2CVCxFEUjs8vbwvOTPUg4ztsvKmiMNlr74UmdQY93pEBCzTfY/hT3fb SBaQUqyVs2h7iBEw9w2vYiz65CR6R5aCrZqvtjPT3vG2S+yCaI+OMyiAq7ZHpK6x /AZXPF1NB/s01oe8xv2h5DBkbJ5YWnrcOz+qn/xiaNbCJYLbuiUzRCmMThT0hg4= =LZGY -----END PGP SIGNATURE-----

=============================================================== From: Dan Lyke ------------------------------------------------------ C++ templates. C/C++ "union" Smalltalk-ish "everything is an object". C++ "auto" type. I'm gonna guess that this is the sort of thing where you can switch on a type, and then treat the object as that particular type down that particular execution path. a standard key-value type, akin to C++ STL "pair". I believe that these are basically ways to impose restrictions on native types. A comprehension would be something like "list A contains only the elements of list B that are of type 'Kangaroo'", kind of like a live 'grep' alias, and fully-reified generic types are things like "define a vowels type that's a a string that can only contain [aeiou]", Dan

=============================================================== From: Mike Harrison ------------------------------------------------------ DaWorm: I have a fond memory of you looking at a real time stream of serial data flowing across a serial sniffer screen and saying: "Can you put in in Hex? It's easier to read that way." You are not too old, but you work on a different level of problem, with a different set of tools. As you have been isolated in a functional world where code actually works, and must work, as opposed to an artistic world where code should be "pretty" and "elegant". Therefore you do not grok the obfuscated vernacular of fledgling programmers dealing with abstract problems of an abstracted obtuse object language like Java and JavaScript.. and now: Ceylon Looking at: http://ceylon-lang.org/documentation/1.0/introduction/ For a guy like me, I hate the abstraction layers upon abstraction layers steeped in non-obvious differentiations of common vernacular. Maybe it's a fix for Healthcare.gov.. or an example of the complex thinking that made it such a failure. I don't know. These quote says it well: "Ceylon is a new programming language that's deeply influenced by Java, designed by people who are unapologetic fans of Java. It's a language designed specifically for writing large programs in teams." and: "Every language has its strengths and weaknesses. Ceylon is a great language if you want to create easily understandable and maintainable code with minimum fuss, especially if you like navigating and writing code with the help of an IDE." Which to me say: It's an abstractiona layer/framework on top of Java.

=============================================================== From: Rod ------------------------------------------------------ Doesn't every new language or coding paradigm of the last 30 years have their buzzwords? -- Using Opera's mail client: http://www.opera.com/mail/

=============================================================== From: Mike Harrison ------------------------------------------------------ Sure. I fight this in religion as well as programming languages. Thay are all usually talking about exactly the same things, artificially seperated by a language with specific nuances and meaning attached to words. Doctors and Lawyers do it also. As do geeks. programmers, etc.. It's how you isolate and differenciate a group of people for functional as well as economic reasons. Once the words you are used to using mean specific things in your context/programming language/religion/professional group, it's hard to discuss and compare things with the infidels that do not believe as you do and change camps. Really good programmers see the differences and similarities between languages and can live in multiple worlds understanding "sub =~ function" and their small but important differences. Hacks like me cut and paste example code until it works.. I've been in Javascript mode for 2 days.. by the end of today I'll be pretty good at it again, but I'll forget most of it over the weekend. Omar's going nuts trying to create JavaScript in PHP.. I grok his pain.

=============================================================== From: DaWorm ------------------------------------------------------ I've used object oriented languages for years as well, and make a lot of use of abstraction layers in C code. It is the best way I know to be able to make sense of things when I inevitably have to come back a few years later and have to make changes. I think a lot of that comes from programming in Forth for so long. Turning the language you have into the one you need via creation of APIs comes as second nature to me. Sometimes I think people, especially university types, over think these things though. The problems they are trying to solve aren't that difficult with a little discipline. I think most of these things are to try to keep bad programmers from being so bad. Languages that enforce discipline don't bother me, I've always preferred Pascal to C, for instance, but some of these things go too far. Jeff