6 ms·
For scientific computing, showing the package ecosystem is the most important thing. When you look at this thread, people are asking about dataframes and differ
by ChrisRackauckas 8y ago
For scientific computing, showing the package ecosystem is the most important thing. When you look at this thread, people are asking about dataframes and differential equations. Julia's site reflects this: yes there are things like Pandas, and for plotting, etc.
- StefanKarpinski 8y agoI do think we should add a code sample prominently on the page, however. I've always find it really frustrating when I look at a programming language and can't get a quick sense of how it looks. If a language looked like, say, APL, I'd be reluctant to use it even if it had an impressive ecosystem. Issue filed: https://github.com/JuliaLang/www.julialang.org/issues/115 https://github.com/JuliaLang/www.julialang.org/issues/115.
- ChrisRackauckas 8y agoOh I thought the first tab had code and the complaint was it was too low. I guess that was a prototype build of the site. Yeah we should get that back.
- essenciary 8y agoYeah, there is code set up in the page to add a code sample for each tab in the ecosystem. It's a matter of content (adding it).
- celrod 8y agoRacket sounds like a really exciting language, but every time I look at some code...
- 3rdAccount 8y agoRacket is having its runtime replaced with the now open-source chez scheme, so it should get faster (my limited understanding) even though it is already faster than a lot of dynamic languages. Lisp languages do take a long time to get used to.
- Svenskunganka 8y agoThe blog mentions that Julia is supposed to be a general purpose language, and not a language built specifically for scientific computing. Is that wrong? The first impression does leave me thinking that using Julia for different programming domains like distributed internet-facing servers or web services is not something it was built for.
- Accipitriform 8y ago> The blog mentions that Julia is supposed to be a general purpose language, and not a language built specifically for scientific computing. Is that wrong? No. Julia is a general purpose language that has so far been mainly focused on scientific and mathematical programming. It's design is probably least friendly to the real-time programming domain (GC based) but it can apparently be used there as well: http://www.juliarobotics.org/ http://www.juliarobotics.org/ I see an extremely bright future ahead for Julia!
- ChrisRackauckas 8y agoFun fact, the GC really isn't an issue and instead the opposite issue was found. There had to be callbacks built to slow down the computations for the robotics simulations in order to get it to run at real-time because it was too fast. https://github.com/JuliaRobotics/RigidBodySim.jl/blob/34ac4352f882b5b3beb62ba2b4b90c1e57817b39/src/core.jl#L154 https://github.com/JuliaRobotics/RigidBodySim.jl/blob/34ac43... Notice that this function is purposefully sleeping the differential equation solver in order to slow it down to the exact amount to get the simulation back to real-time.
- CyberDildonics 8y agoThat's a very amateurish way to solve this problem. Games typically have a main loop which will check the amount of time that has passed on every iteration of the loop. You can see how much extra time is left for that frame at the targeted frame rate, then sleep for that amount of time. Then you never have to slow down anything else, you can set a maximum amount of cycles per second and you can sleep once per cycle. The faster the CPU, the less power it should use.
- jimbokun 8y agoSo show code samples using dataframes and differential equations.
- ChrisRackauckas 8y agoUsing the IterableTables interface, the DifferentialEquations.jl solutions are presented as tables and directly convert to dataframes: http://docs.juliadiffeq.org/latest/features/io.html#Tabular-Data:-IterableTables-1 http://docs.juliadiffeq.org/latest/features/io.html#Tabular-... f_2dlinear = (du,u,p,t) -> du.=1.01u prob = ODEProblem(f_2dlinear,rand(2,2),(0.0,1.0)) sol1 =solve(prob,Euler();dt=1//2^(4)) using DataFrames df = DataFrame(sol1) # Result 17×5 DataFrames.DataFrame │ Row │ timestamp │ value 1 │ value 2 │ value 3 │ value 4 │ ├─────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 1 │ 0.0 │ 0.110435 │ 0.569561 │ 0.918336 │ 0.508044 │ │ 2 │ 0.0625 │ 0.117406 │ 0.605515 │ 0.976306 │ 0.540114 │ ...
- lukka5 8y agoI agree but and I think is better to show both. In a first section the package ecosystem is presented mostly targeting scientific computing and on a second section some code examples for general-purpose computing.