addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwchatcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgoogleimageimagesinstagramlinklocation-pinmagnifying-glassmailminusmoremuplabelShape 3 + Rectangle 1outlookpersonplusprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

Fantom

http://fantom.org/: Portable (compile to JVM, CLR, or JavaScript, familiar (to Java/C# developers), mixins, concurrency, O-O, functional, static and dynamically typed, JSON-serialized, REST-friendly... What's not to like?

Join or login to comment.

  • Jay C.

    Some other things that should be kept in mind when comparing languages and language features:
    * Punctuation and syntax are limited resources.
    * Most common mistakes made by experienced users? (= vs. ==, forgetting semi-colon, etc.)
    * Undefined behavior. (C has lots of this, but it's less prevalent in newer languages.)
    * Support for OO, FP, GC, DSLs, higher types & kinds, (co-)monads, etc.

    Some strategies:
    * Turn implicit code into explicit, then back to implicit differently. For example, type-checking.
    * Turn typographical conventions into syntactic rules (e.g., Capitalize type names).
    * Turn syntactic conventions into semantic rules (e.g., have syntax constraints allow the meaningful addition of non-ASCII characters to identifier names).

    Lastly, I'll present some “crazy ideas” for new languages or modifications to existing ones, in the hopes of fostering some lively discussion.

    As I said above, feedback and/or discussion welcome.

    Cheers,

    Jay

    July 7, 2013

  • Jay C.

    But a rote comparison of language attributes is only a first step. Software engineers should strive to be able to compare features across languages, know what alternatives exist, and what trade-offs they represent. And most of all, how features can best work together to suit the use cases of targeted portions of the developer community. There have been many articles explaining differences between the most popular languages, C++ and Java, partially due to Stroustrup's The Design and Evolution of C++, and to Java's JCP & JCRs. So I'll try to focus elsewhere.

    Some language design hits:
    * Most language innovations over the years: IOC, QuickCheck, Templates, VMs, xUnit, etc.
    * Language design evolution support: JCP/PEP, Boost (C++ features).

    Some language design misses, or ideas that have jumped the shark:
    * NULL in most OO languages (not including NULL in SQL)
    * C++'s export keyword (Turned out to be less useful than hoped.)
    * Deprecated features

    (to be continued)

    July 7, 2013

  • Jay C.

    Here's the idea I had for the September talk that I volunteered to give. Sorry if this isn't the best way to post this. I didn't see a way to mail the group, except to join an event-specific thread. Feedback and/or discussion welcome.

    On Software Language Design: Hits, Misses, and Trade-Offs (formerly Language Attributes Discussion)

    There are many websites that compare different programming languages in different ways.
    * Sites that offer program snippets for different languages (e.g., rosettacode.org).
    * Sites that compare language syntax or semantics.
    o In tabular form (e.g., http://hyperpolyglot.org/).
    o Diagrammatically (e.g., http://dafoster.net/articles/2013/02/20/visual-guide-to-programming-language-properties/)
    Sites that disclose “hidden features” (e.g., http://beerpla.net/2009/06/21/hidden-features-of-perl-php-javascript-c-c-c-java-ruby-python-and-others-collection-of-incredibly-useful-lists/)

    (to be continued)

    July 7, 2013

  • Roger W.

    Hi all, thanks for letting me join and to Thibaut for the great presentation. If anyone is interested in giving a talk on a software or technology topic of your choice, please let me know. Specifically, we would love for someone to speak at our office on Willows Rd for 7/18 or 7/19, ideally around lunch time but we're flexible. Duration could be anywhere from 20-45 minutes, and we'll have lunch available. If not July, then August or later in the year is always an option. Thanks!
    Roger Wagoner
    [masked]

    July 4, 2013

  • Scott

    The Web-SQL technology that MS was selling prior to ISAPI was IDC. Internet Database Connector. You wrote HTML templates in .htx files. The tooling to do this with wizards was Visual InterDev.

    July 4, 2013

  • Alexander A.

    Interesting programming language, and the various conversations brought up some good points.

    July 4, 2013

  • Thibaut C.

    i mean a String or null.

    July 3, 2013

  • Thibaut C.

    Sorry about my thick accent, you can find the presentation here:
    http://www.colar.net/fantompres/

    and more dos and the nice API's here:
    http://fantom.org/doc/index.html

    also wanted to clarify something, was asked what
    a := something?.somemethod

    would evaluate to and did not explain it clearly.

    The way the safe call works is that 'somemethod' is only evaluated if 'something' is NOT null, so basically that means 'a' type is inferred to the the type returned by 'somemethod', but because it's call with ?.(safe call) it's automatically made a nullable type, so if 'somemethod' returns say a Str(String) then 'a' will be inferred of type Str? (nullable string) and that is the only values it can have, an integer or null.

    July 3, 2013

  • Thibaut C.

    Sorry about my thick accent, you can find the presentation here:
    http://www.colar.net/fantompres/

    and more dos and the nice API's here:
    http://fantom.org/doc/index.html

    also wanted to clarify something, was asked what
    a := something?.somemethod

    would evaluate to and did not explain it clearly.

    The way the safe call works is that 'somemethod' is only evaluated if 'something' is NOT null, so basically that means 'a' type is inferred to the the type returned by 'somemethod', but because it's call with ?.(safe call) it's automatically made a nullable type, so if 'somemethod' returns say a Str(String) then 'a' will be inferred of type Str? (nullable string) and that is the only values it can have, an integer or null.

    July 3, 2013

  • Christopher

    Sorry for the last minute cancellation. I was really looking forward to tonight, but some family matters arose.

    July 3, 2013

  • Roger W.

    We doing fireworks tonight?!

    July 3, 2013

  • Chris S.

    Had a family need come up. I can't wait to make it to one of these.

    July 2, 2013

  • Ted N.

    We had a volunteer at the last meeting who was up for presenting this, but I forgot to catch his name--if that's you, would you please contact me (through here or email) so I can make sure you're still up for it?

    June 5, 2013

    • Thibaut C.

      Hey Ted that's me, you can reach me at tcolar AT colar.net

      June 5, 2013

    • Thibaut C.

      Was planning to be at the meetup today but tat didn't work out.

      June 5, 2013

12 went

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy