I think I remember PL/1 (Programming Language number 1) was also a langage 
so much better than anything previously invented  that nobody could doubt 
of it replacing everything.

On Thursday, December 4, 2014 7:12:24 PM UTC+1, Páll Haraldsson wrote:
>
>
> Hi,
>
> This is my first post here and since I've gotten your attention, my 
> answer: Julia is (or seems to be) good at "everything".[*] But I'm just not 
> sure.. [You could stop reading here.]
>
> I think Julia could be the last language people need to learn (and should 
> be the first).[*] Maybe I'm being incredibly naive thinking no *better* 
> language will come along and I need to qualify that[*] but it seems people 
> here, when saying the Wired article has it wrong (e.g. Bezanson), are being 
> modest (or know better than I do). Maybe I just do not have enough 
> perspective on languages/paradigms out there. I'm probably ignorant on 
> (new) language/paradigm research..
>
> Is Julia ready for prime time (0.3.3 considered stable)? I see some talk 
> of breaking changes ("Array nirvana" and "staged functions" (for C++) will 
> they break anything?). I already recommend Julia for technical computing 
> (quant/financial) at least (to learn/try); there may be issues (especially 
> for those doing non-technical) - for now. That seems to be changing fast.
>
> I would be preaching to the choir saying Julia is great for its target 
> audience. But why do you just want to unify all of technical computing in 
> one language and not all of computing? "A fresh approach to technical 
> computing" might stop other people from considering Julia. I guess it's 
> good to have a niche but I hope other people do not get scared away.
>
> What is needed is to support all the important platforms so that people 
> will not overlook Julia as "it doesn't support my work or run on my 
> platform". This means the web (JavaScript as an "assembly language" 
> target), Android (and iOS..).
>
>
> At least Bezanson seems to like (love?) Scheme ("femtolisp"). I wander if 
> Scheme/Lisp (or any language) is *clearly* better than Julia for anything? 
> Or would he stop using Scheme except to maintain Julia's core.. [Maybe 
> femtolisp should be removed from Julia (e.g. to bootstrap Julia)..]
>
> While functional style is getting more popular, people seem to like 
> imperative and Julia isn't either or. Can/should !-functions be enforced? 
> It is only a recommendation?
>
> I know Lisp-syntax is "simple". Maybe non-infix notation is "better" in a 
> language but only for the interpreter it seems; or in regular math, had it 
> been used first/what people are used to. I and most people just don't see 
> it. I wander if there is anything to this other than preference. The 
> S-expressions that come with Lisp and infix, do they have an inherent 
> advantage that Julia can't match? In other words, I think that means, are 
> Julia's "Lisp-like" macros and its homoiconicity as powerful as Lisp's?
>
> As for the (linked) lists (L in Lisp), of course we need lists (and trees) 
> sometimes and Julia has them, but as a basic data structure of a language, 
> seems to me to be a performance killer. I do not see caches (locality of 
> reference) going away any time soon..
>
>
> As all (Turing-complete) languages are equivalent in a sense, one can't be 
> more "powerful" than another; "C can implement Lisp", but without that 
> exception ("Greenspunning"), programming a new runtime, languages with real 
> macros can be more powerful. I used to associate macros with Lisp, are 
> there (m)any other "ALGOL-like"/non-S-expression/not-list-based languages 
> with real macros? Is Julia a first? I understand macros are the key to 
> Lisp's power and Lisp is said to be the most powerful language.
>
>
> In short is there any area where another language (which one and for what) 
> would be (*clearly*) better (not just slightly, see my metric below)? Maybe 
> I'm not asking the right people.. I can assume people here have language 
> theory covered (the basic three (more?) categories including logic 
> programming/Prolog) that I know (and, I guess, a deeper understanding than 
> I do).
>
>
> If course which language (syntax) is best, is partly a value judgment; 
> maybe somewhat a personal taste and objectively there may be no best 
> language.
>
>
> People focus much on the speed of Julia. My metric is not (just) the 
> speed. I see basically just that dimension (parallel is part of that) and 
> then readability as important. And that means how short the programs can be 
> (without getting cryptic). I could maybe go with programming fault rates as 
> a third or safety/fault-tolerance (see Erlang or hard real-time) as some 
> third/fourth metric but fault rate is stated as being (roughly) independent 
> of lines of code. So let's just stick with how short you can make code 
> (while keeping readability) as a metric. Is there a reason Lisp or Prolog 
> (or Haskell or other language I know less about) should win that metric (by 
> a non-trivial/low constant amount at least)? Are there likely to be (m)any 
> as good available or better ones available in the future? While also being 
> good on the speed metric? I would really like to know because I really know 
> of no other language. Any candidates that are even about as good? OCaml and 
> Racket come to mind, just not sure they can compete and win.
>
>
> Readability is maybe subjective and Perl and Haskell are not, at least to 
> me.. Julia is, but maybe it's just my upbringing in imperative..
>
>
>
> * Caveats/possible doubts for some
>
> What I mean by "best language" is judging it on the language merits not 
> based on any particular missing library for some specific use. [However, I 
> would like to know where they need improving, especially for "non-technical 
> use", to see how "practically best" Julia is and possibly improve the 
> situation.] Imagine if other languages did not have a headstart. Given the 
> library headstart, I also think Julia would be best since you can use 
> (almost) any library you are likely to need right now. Are there important 
> libraries/languages that can't be supported right now or theoretically. And 
> how mature is the support for R, MATLAB (does it include Octave support?), 
> Java and C++?
>
> You can call Java, meaning the JVM. Would it be impossible reuse Java code 
> without the JVM or the other way to compile Julia (a executable or the 
> whole environment) to Java (or CLR)? Is a C2Java available/possible? As 
> Julia2C (and f2c) is available and assuming C2Java, couldn't Julia run in 
> the JVM? Or in JavaScript (see Emscripten C2JavaScript compiler).
>
> Yes, you can't call all languages. It seems though, all that matter, 
> except maybe Objective-C/Swift, C#, COBOL? and few others; which ones are 
> not callable right now? Is CLR support in general possible or important?
>
>
> Parallel
>
> In the long run, supporting parallel and resulting speed seems to be what 
> would make or break new languages and I just do not know what language 
> could be best at parallel. Any theoretical reason to suspect another 
> language than Julia? Auto-parallel would be nice; any reason another 
> language could do better with auto-parallel than Julia? That is, did the 
> developers shoot themselves in the foot, not doing pure functional (or lazy 
> vs. eager)? Microsoft made some "breakthrough" recently so imperative 
> languages are not (much?) worse off than pure functional. Anyone know more 
> about this?
>
> I assume Julia has, at least non-parallel, speed covered. If not (for now) 
> I assume it could at least never get slower than C than by some low 
> constant factor (if not, it can call C anyway so not a big problem). I just 
> trust the developers when they say that they can close the gap with C. And 
> I assume C (for non-parallel) using restrict keyword can't really be beat 
> by much speed-wise in any language. Assembly included. [Still, will Julia 
> support assembly directly (or does already?) in any way? Could it be done 
> in some way that is still portable (translated for other CPUs?).]
>
>
> Garbage collection
>
> Is a plus for almost all programmers and while some disagree even that 
> seems not a good objection to Julia as best for everything (eventually). GC 
> can be disabled (possibly helping with real-time functionality in the short 
> term) or by calling C. Java has hard-real-time GC (even concurrent). I 
> assume Julia could to (an implementation issue and not a "language" one) 
> use all the GC algorithms Java can. I assume multi-dimensional arrays will 
> not be an issue (seem to recall some array issues with Java's GC that were 
> overcome).
>
> For game programming, would it be a good strategy to disable GC and run GC 
> manually at every vblank? Would beat C/C++ with malloc/free?
>
>
> Game programming
>
> I mentioned games and a friend replied, "you wouldn't use Julia", au 
> contraire?! At least 3D games are about the only heavy users of computer 
> power (and often physics heavy) I can think of for ordinary users. Would 
> any other language (C++) be clearly better/faster? See next for event 
> driven:
>
>
> GUI programming
>
> GTK (does it also work (well) for Windows/Mac with Julia?). With C++ 
> recently covered Qt should work (perfectly eventually?). Would any other 
> language be clearly better for GUI work with Qt (or otherwise)? Plex 
> language for GUI and/or business application? [What is currently best?]
>
> Even RAD/Visual Basic-style programming is just based on BASIC (or Pascal 
> in case of Delphi or lately what C#?). Julia doesn't have the GUI part of 
> that equation but could and it wouldn't be any worse as a part of a such 
> larger system, right?
>
> Same argument for individual games or engines (Unity uses JavaScript, C#, 
> could use Julia).
>
>
> Android could work (already?), iOS probably (Apple requires using XCode to 
> submit to the app store, ok w/Julia2C?).
>
>
> Database programming
>
> Julia supports *databases* but does it support the relational model as 
> best as possible? I'm not sure what should be in the languages themselves. 
> Not too familiar with:
> https://en.wikipedia.org/wiki/Dataphor
>
> See: https://en.wikipedia.org/wiki/The_Third_Manifesto
>
> I have mixed feelings about OO in relation to RDMS (see ORM).
>
> For an opposing view to relational-only-best-programming, see (nothing 
> "should" use separate relational database, use only objects in memory):
>
> http://prevayler.org/
>
>
> At least PHP can't support this concept but this has been ported e.g. to 
> C# and I think Julia could (should?) have an implementation. Not seeing if 
> multiple dispatch (not "regular OO") should be any problem.
>
> [I haven't yet looked into it much, Julia has some serialization support 
> and not much else needed.]
>
>
>
> Maybe there are better 4GL languages? I only know Informix 4GL (and Delphi 
> in the GUI world).. not ABAP (SAP's), RPG or some later (or earlier 4GL's 
> that most have "died"..?).
>
> I see Julia supports ODBC (most (relational) databases covered) and 
> SQLite, MongoDB (and JSON). Any data(base) problems you know of?
>
> PostgreSQL at least supports Python for stored procedures. I assume an 
> extension for Julia could be done..
>
> SQL or MDX (not really competitors to Julia, no more than other 
> non-Turing-complete ("non-programming") languages (HTML, XML). Could query 
> languages be better worked into Julia. Macros would help? Maybe changed 
> syntax (SQL->LINQ)?
>
>
> First programming language
>
> I see three (more?) universities have started teaching Julia. For Matrix 
> methods (I guess replacing MATLAB). I don't know if any have used it as a 
> first language, but why not..?
>
> Unlike many common alternatives (e.g. C/C++/Java) I understand Julia 
> avoids Hoare's "billion dollar mistake" - pointers (and like newer Java 
> etc. has GC and easier than OO Java or Ruby).
>
>
> First programming language for (really young) kids
>
> May not compete directly with Scratch, Alice etc. but note Scratch is 
> really a "GUI-wrapper" using Squeak language (a dialect of Smalltalk).
>
> Julia even could be competitive here.
>
>
> Hard real-time
>
> Something like the Metronome GC algorithm could work Julia?
> http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/41809/1/04-2432A.pdf
>
> Then at least I'm sure Julia *could* work but would it be "best" for that 
> "environment":
>
> Could Julia do similar to Atom? I don't know it or the other languages, 
> like those two for real-time:
> http://lambda-the-ultimate.org/node/4488
> "You might take a look at Atom, which is a DSL embedded into Haskell, and 
> is used to produce real-time code for commercial products. It's open 
> source, so you can see what they do. You could also look at the book 
> Compiling Esterel, or some of Stephen Edwards' papers on the same topic.
>
> Synchronous reactive programming languages, like Esterel and Lustre, 
> typically execute the `whole graph` (whole program) on a per-cycle basis."
>
> https://en.wikipedia.org/wiki/Esterel
> "Difficult to compile in the general case, but simple correctness criteria 
> exist"..
>
>
> AI
>
> Lisp (and Prolog(?)) was popular for AI. Isn't "symbolic" pretty much 
> covered in Julia? Is Julia worse for something like that? Or anything you 
> can think of that Lisp is good for?
>
> Most have probably not heard of Replicode language for strong AI and I do 
> not really know to much about it or even if it's Turing-complete or right 
> to compare that to regular "programming languages".
>
> [Any AI languages/"systems" I should know about?]
>
>
> Formal methods
>
> https://en.wikipedia.org/wiki/Z_notation
> "Why Z?" with "Because it is the ultimate language!"
>
> I just do not know enought about Z-notation or formal in general, is Z 
> even a programming language (Turing-complete)? Just a "specification 
> language"?
>
>
> Operating systems (including "web browser" (OSes))..
>
> Linus famously doesn't like C++, wander if he would like Julia.. Would or 
> could Julia be considered a "systems programming language" (is Lisp..?)? 
> Seen articles saying so.. *Could* Julia at least work with C to build an OS 
> or even in Linux? That is made work to without major changes to the 
> *language*? But possibly to the implementation. Lisp machines had their own 
> OS written in Lisp. Maybe they only had single-tasking (non-preemptive) and 
> not fair to say OS in the modern sense (were just running Lisp?).
>
>
> Alien OSes (such as RISC OS?)
>
> Only three platforms, but could be extended to run in non-Unix..
>
>
> * "Exotic" hardware
>
> Decimal floating point hardware. DFP (or even BCD) can be emulated, just a 
> library issue or native instructions used. And supporting both the hardware 
> and software format. I may recommend some small changes to core 
> (non-library) Julia just the same.. Not sure if a library (a first step) 
> will do.
>
> It seems Julia can support all current hardware (Julia2C) and as I'm not 
> up to speed on GPU's I reserve judgment there, but would like to know if 
> Julia supports "automatically" or could (OpenCL.jl is not for that?). Same 
> with FPGA's (unusual bitwidths.. But see myhdl.org "From Python to 
> Silicon!") using Julia as a HDL.. And Micron's automata processor.
>
>
> Microcontrollers
>
> 4-bits are out.. but very hard to find anyway.
>
> 8-bit and 16-bit almost dead? Seems would work but 32-bit (ARM) is killing 
> them anyway..
>
> Even Python had been proposed for microcontrollers:
> http://www.micropython.org/
>
> Since even Python can work, including for interrupt handling, then I 
> assume Julia could work in that space also.
>
>
>
> Adapteva's co-processor CPU. Very memory constrained (32 KB per core for 
> code, data and stack.. best not to use more..). How small could Julia 
> executables get (or the parts of executable, kernels, the coprocessor would 
> run)?
>
> GreenArray Forth chips are another story.. even more constrained..
>
>
> Lower than 32-bit CPUs (or maybe non-standard 18/36-bit etc..)
>
> Yes for serial; impossible for parallel (atomic issues)? Then Julia would 
> be "worse" than C, but not really in the modern age..
>
> 8-bit bytes assumed (and no support for non-two's complement CPUs) is also 
> hardly a limitation (except FPGA support?).
>
>
> Binary-coded decimal (4-bit) also not an issue, BCD not a means to an end, 
> seems fixed or floating point decimal would be better.
>
>
>
> Quantum computers
>
> Quantum computing, I do not know to well, has at least one programming 
> language, probably better than Julia in that case..
>
>
> Am I missing major areas?
>
> Best regards,
> Palli.
>

Reply via email to