Live data from Hacker News

Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

sinews.siam.org

211–220 of 249 posts

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#211
post #192
post #159

Earlier quoted context omitted.

Then why not just say 'Julia has macros'? Lightly perusing the description of Julia's features, that seems like a clear way of expressing what it is. (I also vaguely recall Julia describing its type system as "dependent" in way that goes against convention. Maybe they just liked controversy in the early days!)

"macros" are unfortunately used by C and lisp to describe two different things, and both usages are as widely popular as their parent languages (i.e. very).

[deleted]

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#212

Earlier quoted context omitted.

I was playing around at work with some galois field stuff (very cs) and was very pleased to find that the lu decomposition for Julia "just worked" with the custom galois field type that I implemented. All in all about 75 lines of highly performant code, which is what I needed because I was conducting searches over 2^32 elements.

Did you ever try Magma? I graduated in pure maths from University of Sydney where Magma was born. It was great for doing Galois theory stuff.

Does magma compile down to highly efficient code?

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#213
post #39

I built a very simple neural-network app a few years ago with Julia, and while the project was fun and I didn't think the language was bad by any means, as someone who does software for a living I had trouble seeing why compsci people really got into it. I could totally see someone like my dad using it (he's an aerospace engineer, not software), but I have friends who work in compsci in academia trying to evangelize…

Julia is regarded as similar in syntax to python, or at least they have similar readability. What I love about it though (fyi not a CS degree person here) is the elegant way it handles types, and generics. User defined types perform just as fast as the built-ins, and I never seem to labor over design choices needed to generate fast computation.

Multiple dispatch is such a great way not to have to write boilerplate code for every method, somehow java seems very awkward in comparison.

Julia feels like a thoughtfully designed and carefully constructed language. I don’t havd the training to understand why exactly.

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#214
HackerNews’ traffic broke this website’s database:

---

500 - Internal server error.

SQL Exception

Error Details

File

Error Index #: 0

Source: .Net SqlClient Data Provider

Class: 17

Number: 1105

Procedure: AddEventLog

Message: System.Data.SqlClient.SqlException (0x80131904): Could not allocate space for object 'dbo.EventLog'.'PK_EventLogMaster' in database 'DNN-PROD' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at PetaPoco.Database.Execute(String sql, Object[] args) at DotNetNuke.Data.PetaPoco.PetaPocoHelper.ExecuteNonQuery(String connectionString, CommandType type, Int32 timeout, String sql, Object[] args) at DotNetNuke.Data.SqlDataProvider.ExecuteNonQuery(String procedureName, Object[] commandParameters) at DotNetNuke.Data.DataProvider.AddLog(String logGUID, String logTypeKey, Int32 logUserID, String logUserName, Int32 logPortalID, String logPortalName, DateTime logCreateDate, String logServerName, String logProperties, Int32 logConfigID) at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.WriteLog(LogQueueItem logQueueItem) ClientConnectionId:84098483-739c-4cd8-bf62-38ff4b256361 Error Number:1105,State:2,Class:17

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#215
post #11

Earlier quoted context omitted.

Multi-methods are much more powerfull than instance methods, but yeah lets agree to disagree. :)

I feel like they're a significant departure from the OO concept of sending a message to an object (for example, "Foo ! bar()" in Erlang or "Foo.bar()" in a more typical OO language would be interpreted as "send message bar() to object/actor/whatever Foo"). Julia's approach is more "call this function on this object", which is indeed perfectly useful, but is semantically different.

That OO concept is pretty much Simula specific, Lisp languages got influenced by the work done in LOOP and Flavours which lead to the design of CLOS, the origin of multi-methods idea.

Building on top of your remark, Julia's approach is more "call the visible implementation of this function that better matches the types of all given parameters".

And these are only two possible ways of doing OOP, there are a few other ways of approaching the ideas of writing extensible modular code with polyphormism.

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#216
post #84
post #34

Earlier quoted context omitted.

Julia also supports this (called Offset Arrays)

Interesting. Doesn't this solve the problem then for people who can't get into 1-indexed arrays?

I suppose it kind of does for your own code, but you have to explicitly 'cast' all your arrays to 0-index arrays and it might break anything that assumes it's dealing with a normal 1-index array.

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#217
post #50

Julia is interesting, but the block syntax is a little off-putting. I'm not sure why someone would design a language that uses 'end' to delineate a block. Curly brackets make sense. Tabs make sense. But 'end'? All it does is make code harder to read and harder to write.

Another compelling argument is that {} , while very easy to type on an English keyboard, is highly awkward on keyboards of almost any other language in the world. E.g. I'm Danish and on my Mac { involves flexing the right thumb down to hit right-alt while typing 7 with my middle finger and holding down shift with my left pinky. `end`, though, being actual letters, is completely easy and fast to type (on languages that uses the latin alphabet).

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#218
post #84
post #34

Earlier quoted context omitted.

Julia also supports this (called Offset Arrays)

Interesting. Doesn't this solve the problem then for people who can't get into 1-indexed arrays?

The problem is that it's not the default.

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#219
post #131

Earlier quoted context omitted.

I agree that macros are better than in other non-lisp languages, but I find them ugly in Julia. Maybe not painful, but they don’t integrate seamlessly into the language.

They are ugly, I agree. Personally, I prefer lisp (especially Clojure) syntax, but not many people agree with me there.

What's actually sad (I learned this quite recently) is that the inventor of Lisp wanted to include a mechanism to evaluate formulas along the lines of FORTRAN. Something like:

(math "x = sin(a) * b ^ 2")

Lack of something like that turned me away from Lisp (LISP at the time) a (cough) long time ago, since I didn't like the impedance mismatch between Lisp code and math for numerics.

At any rate, Julia looks like a fine general purpose language, I'm going to see if I can contribute somehow. I'm hopeful that GC pauses can be avoided for large classes of Julia programs, but we'll see...

Re: Julia Language Co-Creators Win James H. Wilkinson Prize for Numerical Software

#220

The authors claim Julia is a general programming language, but after a few tries I am not totally sure about that. Yes, it's a nice programming language for scientific computing but I am afraid its usefulness stops there. Matlab is (was?) the default tool for computational science, and Julia borrows lots from it. I'd say it's safe to put Julia in the same category with Matlab and Mathematica

Conceivably you can see a backen server being built in Julia e.g. https://github.com/JuliaWeb/Mux.jl But I can't imagine anyone would choose Matlab or Mathematica to build a backend...

>Conceivably you can see a backen server being built in Julia e.g. https://github.com/JuliaWeb/Mux.jl

>But I can't imagine anyone would choose Matlab or Mathematica to build a backend...

Julia is a clean, concise language that has so far mainly been focused on numerics. People are looking at using it in many other areas, for instance real-time robotic control: http://www.juliarobotics.org/

This means that at least some Julia folk are looking at ways of avoiding garbage collection during critical code sections...

Data center efficiency is a concern, and there is real interest in better languages for web applications. Rust and Swift both have projects exploring this area. Julia would fit well in that space, and in my opinion its syntax is much cleaner than either.

Post reply on HN