6 ms·
I'm starting to think that the two language problem is not really solvable at the language level. Maybe it is, but there's a significant friction. High level n
by qsort 3y ago
I'm starting to think that the two language problem is not really solvable at the language level. Maybe it is, but there's a significant friction.
High level naturally pushes you towards abstract types, GC, not caring about allocation, do what I mean not what I said.
Low level naturally pushes you towards concrete types, deterministic mallocs, do what I said not what I mean.
e.g. do I want integers like Python or integers like C? Yes.
- markkitti 3y ago> do I want integers like Python or integers like C? Yes. Julia has BigInt and Cint. Maybe there could be a more Pythonic implementation that scales between machine types and BigInt. That would not be hard to implement in Julia. I just have not found a good use case. What I like about Julia is that I can do both the high level and low level in Julia. Abstract code becomes concrete due to late binding. You can access Libc.malloc and Libc.free if needed. See GPUCompiler.jl The effect system exists. If you can prove no side effects, eager finalization is also possible. That is the finalizer and deallocation will run deterministically. It's new though so effect analysis is a mostly manual affair at the moment.
- bmitc 3y agoI feel F# is a pretty good candidate. One can get pretty down and dirty with low-level CLR stuff or unmanaged code, but then you have a very nice high-level language.
- soulbadguy 3y ago+1 on F#, one of the most underrated language around.
- agumonkey 3y agoIt's so odd how it's been probably a decade of "F# is underrated" but nothing makes it shine to the eyes of the market .. really strange
- bmitc 3y agoIt's really more of a result of human sentiment than anything. F# is underrated and underappreciated, and it just doesn't have a critical mass of people developing libraries for it. The issues to its adoption were being associated with .NET (Windows-only at the time) and Microsoft and being sold as a C# alternative rather than its own thing and an alternative to other languages like Python. An interesting thought experiment is to think if someone was to release F# today as a new language but calling it something else, like Flosure or something. I bet people would lose their minds over it.
- blendo 3y agoI’ve always thought Microsoft should embed it into Excel as a coequal language to VBA. Finance programmers would go nuts!
- agumonkey 3y agoTrue, and it may even attract R users since it seems functional in its core. MS did include lambdas as a primitive but also decided to use python as new formula language.
- soulbadguy 3y agoYeah it would have been great for finance, and the ocaml and ml langauge seems to be popular in some HFT firms. Saddly i think even this boat has sailed since they added python to Excel now. A true miss opportunity.
- jampekka 3y agoRunning on CLR and coming from Mordor are the prime reasons I won't even evaluate it. Not sure how prevalent or fair this is, but at least for N=1 makes it not shine.
- soulbadguy 3y agoAs much as i love the CLR on technical level (as opposed to the JVM), and feel like Oracle is a much worst devil than MSFT. I completely understand the sentiment, msft have consistently done some very anti-community/open-source move with their open source offering.
- jampekka 3y agoJavascript is not that far from solving the two language problem. In fact v8/spidermonkey speed is very acceptable for most number crunching. And Javascript isn't even very friendly for high performance but The JITs are miraculous. Sadly Javascript as language nor its "ecosystem" are very suitable for data-analysis like use. I want integers like Python that are as fast as integers like C. I don't care how they are allocated or deallocated. Javascript comes very close even without having integers at all. Probably nobody expects to squeeze every last cycle with a higher level language. I'd say getting consistently within magnitude of C performance can be said to have solved the two-language problem. GC pauses etc are perfectly acceptable for e.g. data analysis.
- markkitti 3y agoVia Pluto.jl notebooks, I have been able explore the Julia-JavaScript interface. It's quite fun using JavaScript and SVG to interactively render the accelerated BLAS and FFTW outputs from Julia.
- jjoonathan 3y agoOoh, interesting! Jupyter got rid of their direct javascript interface for security reasons that I don't agree with. Does Pluto.jl have a model where trusting display code is as easy as trusting the code being run?
- staunton 3y agoLet's see how you do those high energy physics simulations with JS...
- jampekka 3y agoWhy would I do that? Although I wouldn't be surprised them being faster than ROOT with e.g. asm.js.
- elashri 3y agoIn some cases yes that will be true. But good luck having the inertia to replace ROOT in general (by anything). While many people hate ROOT (I do and feel the pain daily) it is highly tailored optimized piece that will take decades to try to implement something like it. And I doubt you would be able to handle low-level tasks like optimizing memory footprint needed for HEP applications when running stuff in online world (while collecting data). JS+ASM greatest advantage is cross-platform which is one of the least features requested in the field. i.e No one expect you to be able to run your analysis code on windows.
- th0ma5 3y agoI sincerely agree with your comments so much. People that don't live with code don't see this and have weird romantic ideas of what it is and what it does. Mixing levels of abstraction has never made much sense (ultimately) to me.