Groups 111 of 99+ julia-users › Julia vs Seed7, why languages succeed or fail 4 posts by 3 authors Páll Haraldsson Oct 5 A. I just [re?]discovered Seed7 language, one of the few languages with multiple dispatch, also extensible (not though macros). https://groups.google.com/forum/#!topic/comp.programming/_C08U8t4dRg "Seed7 has more then 90 libraries now." [in 2013, after 7 years] They hit Top100 (93? top) on TIOBE, but nowhere to be found now. They seem very similar, except for Pascal like syntax, I guess there must be more to it.. B. Chapel can be faster than Go or competitive, but also much slower (is a parallel language, not sure if not working/meant to work always..): http://benchmarksgame.alioth.debian.org/u64q/chapel.html fasta source secs KB gz cpu cpu load Chapel 20.59 28,868 1216 20.59 100% 0% 0% 1% Go 1.97 Chris Rackauckas Oct 5 Who's the audience for Seed7? I googled Seed7 BLAS, Seed7 Linpack, Seed7 FFT and nothing came up. So a large portion of Julia users are not the Seed7 audience. To me, there is almost no similarity between Julia and Seed7, even if the syntax or features were similar. But for the reasons you say, the Seed7 audience would be part of the Julia audience. Chapel was made for a small niche: most people still aren't dedicating all of their time to parallel programming. That's fine, but it's clear why it isn't seen everywhere. One thing to notice too is that one of Julia's strength is that it allows itself to build off of other's strengths. It doesn't reinvent the wheel, it reinvents the language design and structure. It very naturally plugs into LLVM, FFTW, OpenBLAS, etc. so that way it's fully featured and fully performant, but without having to re-create every little detail. This plus the fact that Julia's Base is mostly written in Julia means that the basics are covered, and Julia can be worked on by standard Julia users. This makes Julia easy to maintain, easy to upgrade, and easy to see a future for. Lastly, why do some languages succeed? Because you have to use them. Julia offers me many things that no other language does, so even though my research adviser didn't want me "trying a new language", I can't make him happy: switching from Julia would only lead to major performance/feature/syntax/maintainability problems (been there, done that). So no matter what, I am going to continue to use Julia. I believe others are the same. And that's why it's succeeding. - show quoted text - Tamas Papp Oct 6 A necessary ingredient for success is that a language is created by people who have specific and clear ideas about what they want from a new language [1], _and_ have the expertise to implement them. Everyone wants a fast, extensible, conscise, safe etc language [insert favorite features here], but very few people have the expertise to create one that improves on existing languages. [1] http://julialang.org/blog/2012/02/why-we-created-julia Also, this is hard to accept, but languages succeed and fail partly for random or trivial reasons. Timing also matters: a language may fail because the existing technology is not yet ready for it (think of implementing Julia before LLVM), or succeed because they are the first language to scratch a particular itch, or fail because the niche they want to occupy is filled, etc. It is always tempting to rationalize the outcome ex post with a technical explanation (speed, syntax choices, features, etc), but I doubt that languages succeed and fail purely on their technical merits. Julia seems to be filling a vacuum in the scientific community. It is fast (Fortran/C), yet interactive/user-friendly (R/Matlab/Octave), and is available for free (which not only saves the cost of a license, but also the overhead of negotiating/upgrading/keeping track of them, and the pain of discovering that your code won't run on your coauthor's machine unless you get buy another license etc). I don't know Seed7, but I wonder why you consider it a relevant benchmark for comparison. On Wed, Oct 05 2016, Páll Haraldsson wrote: > A. > I just [re?]discovered Seed7 language, one of the few languages with > multiple dispatch, also extensible (not though macros). > > https://groups.google.com/forum/#!topic/comp.programming/_C08U8t4dRg > "Seed7 has more then 90 libraries now." [in 2013, after 7 years] > > They hit Top100 (93? top) on TIOBE, but nowhere to be found now. > > They seem very similar, except for Pascal like syntax, I guess there must > be more to it.. > > > B. > Chapel can be faster than Go or competitive, but also much slower (is a > parallel language, not sure if not working/meant to work always..): > > http://benchmarksgame.alioth.debian.org/u64q/chapel.html > > fasta > > > > source secs KB gz cpu cpu load > Chapel > 20.59 > 28,868 1216 20.59 100% 0% 0% 1% > Go > 1.97 Páll Haraldsson Oct 6 You both have excellent responses, I'm just commenting on those in case people find interesting and/or want to compare and contract with Seed7 or other languages. Can anyone look at Julia (and Seed7) at: https://en.wikipedia.org/wiki/Comparison_of_programming_languages confirm info is correct, add (or correct) if something is missing (or propose here or at Wikipedia's "Talk-page", if you think conflict-of-interest applies; shouldn't apply for clear cut-correct info). In case people like to compare Seed7 to Julia (or Java): http://seed7.sourceforge.net/faq.htm#java_comparison "All parameters are call-by-value" "Arrays are present in many programming languages, but they are usually hard-coded into the compiler / interpreter. Seed7 does not follow this direction. Instead it introduces abstract data types as common concept behind arrays, structs, hashes and other types." [I knew Dylan was slow and failed despite multiple dispatch (and Common Lisp, only other MD language I was familiar with, is well Lisp, with list, not arrays as main data structure, not modern/fast/good enough for at least Julia's audience, for not just that reason.] On Thursday, October 6, 2016 at 6:57:26 AM UTC, Tamas Papp wrote: Also, this is hard to accept, but languages succeed and fail partly for random or trivial reasons. Very true.. Timing also matters: a language may fail because the existing technology is not yet ready for it (think of implementing Julia before LLVM), or succeed because they are the first language to scratch a particular itch, What I was thinking of with Seed7, there are so many similarities (Julia seemed redundant with it, but I also see differences when looking more closely), maybe it was ahead of the times; maybe the speed wasn't up to par, needed LLVM(?), while nothing wrong with the language's syntax. Julia, succeeds not just because of the syntax, also in large part because of the implementation (e.g. LLVM). I recalled having seen Seed7 was fast (can compile to C..), I may misremember/confuse with another language (e.g. Nim[rod]). Benchmarks for seed7 are really difficult to google for.. Julia seems to be filling a vacuum in the scientific community. It is fast (Fortran/C), yet interactive/user-friendly (R/Matlab/Octave), and [Hopefully not just there..] About "Who's the audience for Seed7? I googled Seed7 BLAS .." Maybe that's its flaw, at least Julia's FFI (and included libraries) are one of its killer features, while I'm not looking for BLAS etc. Maybe that was it, not clear goals targeting say scientific (or good enough marketing), that really needed a new language? One thing I forgot to check, REPL in Seed7: Unclear about a REPL (interpreter must be the same for them?) with "Seed7 allows the interpretation and compilation of programs with any license. There is no restriction on the license of your Seed7 programs." and I only saw this using the REPL term: "Command line utilities. E.g.: A calculator that works like a read-eval-print loop (REPL)" I guess REPL/"dynamic" is now almost required for any new language to succeed (I see a REPL is coming to Java 9, not only Beanshell). This wasn't thought possible in a fast language previously, Julia proved wrong, now one of the key "selling points" (solving the "two language" problem). is available for free (which not only saves the cost of a license, but Some languages fail for (cost or) non-Windows support (or only MinGW), or maybe (unfairly?) because GPL, none of which seemed to apply (LGPL) to Seed7: "Windows is supported with several compilers: MinGW GCC (the binary Windows release of Seed7 uses MinGW) Cygwin GCC (the X11 graphics needs Cygwin/X) MSVC cl.exe (cl.exe is the stand-alone compiler of MSVC) BDS bcc32.exe (bcc32.exe is the stand-alone compiler of the BDS)" "Seed7 allows the interpretation and compilation of programs with any license. There is no restriction on the license of your Seed7 programs." http://blog.fourthbit.com/2014/03/01/the-best-programming-language-or-how-to-stop-worrying-and-love-the-code -- Palli.