Click here to Skip to main content
15,891,372 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralThought of the Day Pin
OriginalGriff10-Apr-20 5:10
mveOriginalGriff10-Apr-20 5:10 
GeneralRe: Thought of the Day Pin
Mark_Wallace10-Apr-20 5:23
Mark_Wallace10-Apr-20 5:23 
GeneralRe: Thought of the Day Pin
OriginalGriff10-Apr-20 5:31
mveOriginalGriff10-Apr-20 5:31 
GeneralRe: Thought of the Day Pin
RickZeeland10-Apr-20 7:19
mveRickZeeland10-Apr-20 7:19 
GeneralRe: Thought of the Day Pin
Mark_Wallace10-Apr-20 10:09
Mark_Wallace10-Apr-20 10:09 
GeneralRe: Thought of the Day Pin
RickZeeland10-Apr-20 10:16
mveRickZeeland10-Apr-20 10:16 
GeneralRe: Thought of the Day Pin
Mark_Wallace10-Apr-20 10:19
Mark_Wallace10-Apr-20 10:19 
GeneralJulia programming language PinPopular
rjmoses10-Apr-20 4:09
professionalrjmoses10-Apr-20 4:09 
Always a glutton for punishment, I started experimenting with the Julia programming language a few days ago. Here's some of my takeaways (keep in mind I'm a newbie to this language and environment, so these are first impressions).

1) On the language itself -- "Mikee likes it." I like a lot of thing about language itself. After working in C, C++, Pascal, Fortran, and few dozen other languages, I like the simplicity and structure of the language while it maintains a high level of capabilities. C++ is just sometimes too time consuming with its strong variable typing such that many statements become "classAVar = <some_kind_of_cast> classB.getter().toclassA()....".

Julia pretty much infers a variable's type from its usage. (You can have strong typing for a variable if you want.)

Statement structure tends to be simpler and clearer:
no need for statement ending ";",
if condition statement(s) end
for x in statement(s) end

2) I like the "module" approach which is similar to javascript. Just "import" a module. No need for separate header files/class definitions/etc. All too many times, I've had to spending a lot of time trying to find where a function was located (one of my pet peeves is that some people like to mix putting executable code in a header file or in the body).

3) Lots of automatic conversion for strings to integers/floats and vice versa. But you can override them.

4) Lots of capabilities for arrays, tuples, and vectors. Some are a little obtuse and higher on the learning curve.

Now for the bad news:

1) Build time is longer than most languages. Takes a long time to go from edit to test.
2) Primary development environment is REPL with IDE's are based on the Atom editor with Juno plugin. It's OK, but on a scale of 1-10, I'd give it about a 4. Not very efficient compared to MSVC or Qt Creator. Some things are downright cludgey.
3) Documentation is skimpy in both explanations and examples. Learning effort is substantial.
4) GUI support is based on GTK and needs substantial more development.

Overall:

Bottom line--I like it, but it is early in its life cycle. Just released in 2018, I commend the authors for what they have accomplished. Their intent was to take the best from other languages such as C++, Lisp, Fortran, etc., and to that end, I believe they have accomplished what they set out to do.

It is obvious that they targeted (and they have said as much) the scientific/engineering market place. But, I think it has a lot of potential for general usage.

Being based on LLVM, it also has the capability of running on multiple system types. However, I did have to struggle to get it to run on my AMD K10 CPU due to the use of machine instructions that were not supported on my CPU.

For a language that is on V1.4.0, I give them much credit. I hope they are able to sustain their development efforts and take this to a level similar to MS Visual Studio or QT.

(Please remember: this a first glance on my part and subject to debugging.)
GeneralRe: Julia programming language Pin
PIEBALDconsult10-Apr-20 4:53
mvePIEBALDconsult10-Apr-20 4:53 
GeneralRe: Julia programming language Pin
rjmoses10-Apr-20 6:50
professionalrjmoses10-Apr-20 6:50 
GeneralRe: Julia programming language Pin
PIEBALDconsult10-Apr-20 7:12
mvePIEBALDconsult10-Apr-20 7:12 
GeneralRe: Julia programming language Pin
rjmoses10-Apr-20 7:19
professionalrjmoses10-Apr-20 7:19 
GeneralRe: Julia programming language Pin
F-ES Sitecore10-Apr-20 5:49
professionalF-ES Sitecore10-Apr-20 5:49 
GeneralRe: Julia programming language Pin
rjmoses10-Apr-20 7:18
professionalrjmoses10-Apr-20 7:18 
GeneralRe: Julia programming language Pin
The-Great-Kazoo13-Apr-20 6:12
professionalThe-Great-Kazoo13-Apr-20 6:12 
GeneralRe: Julia programming language Pin
rjmoses13-Apr-20 10:19
professionalrjmoses13-Apr-20 10:19 
GeneralRe: Julia programming language Pin
Matt McGuire13-Apr-20 8:14
professionalMatt McGuire13-Apr-20 8:14 
GeneralRe: Julia programming language Pin
James Lonero13-Apr-20 8:38
James Lonero13-Apr-20 8:38 
GeneralRe: Julia programming language Pin
rjmoses13-Apr-20 10:21
professionalrjmoses13-Apr-20 10:21 
PraiseRe: Julia programming language Pin
RickZeeland10-Apr-20 7:10
mveRickZeeland10-Apr-20 7:10 
GeneralRe: Julia programming language Pin
CPallini11-Apr-20 6:20
mveCPallini11-Apr-20 6:20 
GeneralRe: Julia programming language Pin
rjmoses13-Apr-20 10:18
professionalrjmoses13-Apr-20 10:18 
GeneralRe: Julia programming language Pin
CPallini13-Apr-20 20:37
mveCPallini13-Apr-20 20:37 
GeneralRe: Julia programming language Pin
rjmoses13-Apr-20 23:29
professionalrjmoses13-Apr-20 23:29 
GeneralRe: Julia programming language Pin
CPallini13-Apr-20 23:58
mveCPallini13-Apr-20 23:58 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.