Live data from Hacker News

Mojo is available for local download

modular.com

181–190 of 193 posts

Re: Mojo is available for local download

#181
I probably in the minority but for me D language is already the near perfect language to replace Python and becoming very productive and useful for data science and machine learning programming purposes.

For data science and machine learning, they are two type of programmers namely A and B type, for analysis and building respectively [1]. The former are mostly analysts, scientists or mathematicians that are mainly non-programmer and the B are hardcore programmer that build engine, library, systems and sometime for real-time processing for example embedded signal processing.

For the former, their programming bias are closer to pseudo code and naturally they inclined more towards intuitive programming languages for examples Python and Matlab. For the latter, however, they are mainly library and system builders with real-time bias and their favorite tool are C, C++ and perhaps Rust.

Essentially, Type A prefer easy, low barrier and intuitive languages where real-time is not necessary, while on the other hand Type B required real-time functionality and efficiency regardless of language programming complexity.

From the beginning of programming time, none of the programming languages can really satisfy both types, and that's the main reason Fortran, C and C++ based library are still being widely used by Python, Matlab and Julia, case in point namely LAPACK/BLAS, Eigen and FTTW. D, however, is more than capable of matching and replacing these traditional powerhouse libraries since seven years ago with its Mir equivalent and D should easily satisfy the Type B crowd [3]. Heck you can even write bare metal system without OS with it [4]. Meanwhile, writing bare metal in Julia probably not a very good idea [5].

The harder is to satisfy is the type B crowd and unlike Type B they're fast becoming majority users of the programming languages and this is manifest by the increasing popularity of Python language. For further reading, I'd highly recommend this Ask HN threads on Why did Python win [6].

This is where D language come into the picture, and apparently with D you can have your cake and eat it too [7]. D creators have cleverly make the language has default GC despite extreme disagreement from Type A crowd and they will let you know every time D is mentioned anywhere in the public forum. However, they're kind of missing the big picture since they are fast becoming the vocal minority and most if not all of their requirements can be met with D as proven by Mir [3]. Not only this, D creators also banned macro from the language so D does not have the same fate as Ruby where some Rubyists considered RoR as a ghetto although it's extremely popular and probably the main reason why people is using Ruby in the first place [8].

D seems to hits the sweet spot in becoming the Goldilocks of programming language and it's already an open and mature language that's included in GCC eco-system. Ultimately D need to appeal to the Type A data scientists and this where D creators has gone out of their way to make D as intuitive and Pythonic as possible. In their paper on "Seven Deadly Sins of Introductory Programming Language Design", where these Monash university professors analyzed these popular programming languages back in the day (1996) for their suitability in introductory programming language design namely ABC, Ada, C, C++, Eiffel, Haskell, LISP, Modula 3, Pascal, Prolog, Scheme and Turing [9]. It's a shame that Python is not included because back in 1996 when the paper was written it's still in infancy and not popular as today. Personally, I'd add that not adding a GC as the 8th major or deadly sins of the introductory programming language but it's probably just me. I'm pretty sure that D language authors and designers did not read this seminal paper when they're designing D (I know I asked), but it seems to follow this natural and universal guiding principles that I hope Mojo authors and designers, and other programming languages, will heed as well.

[1] There are two types of data scientists - and two types of problems to solve:

https://medium.com/@jamesdensmore/there-are-two-types-of-dat...

[2] List of numerical libraries:

https://en.wikipedia.org/wiki/List_of_numerical_libraries

[3] Numeric age for D: Mir GLAS is faster than OpenBLAS and Eigen

http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...

[4] Writing a bare-metal RISC-V application in D:

https://news.ycombinator.com/item?id=37346218

[5] Running Julia bare-metal on an Arduino:

https://news.ycombinator.com/item?id=31481895

[6] Ask HN: Why did Python win?

https://news.ycombinator.com/item?id=37308747

[7] Why I use the D programming language for scripting:

https://news.ycombinator.com/item?id=36928485

[8] Stop Designing Languages. Write Libraries Instead:

https://lbstanza.org/purpose_of_programming_languages.html

[9] Seven Deadly Sins of Introductory Programming Language Design:

https://users.monash.edu/~damian/papers/PDF/SevenDeadlySins....

Re: Mojo is available for local download

#182
post #163

Earlier quoted context omitted.

Could you give me an example of a "claim" I made ?

To be fair mathisfun123 was originally responding to someone who tried it out and was somewhat disappointed by the state of things given the hype. It's a valid point. Responding with only "have you looked at the team?" with nothing to say about the current state of things, which was what the sidethread was about, is what probably set them off since it is actually a pretty patronizing thing to say. You want to give mo…

I had 0 intention of it to sound patronizing as you prob noticed english is not my native lang.

Re: Mojo is available for local download

#183
post #163

Earlier quoted context omitted.

Could you give me an example of a "claim" I made ?

how many more tedious questions are you going to ask? https://en.wikipedia.org/wiki/Sealioning

this is literally 2nd question I have asked 1) Have you looked at the team 2) Based on your postulate that I should not be making claims wanted to see an example of claim I should not make. As I don't think I actually made any claims. I am not sure why this is tedious 1) is pretty much yes or no 2) is just copy paste of a "claim"

Re: Mojo is available for local download

#185
post #133

I've had high hopes for this project since its announcement, but until it's open-source, I'm not investing any time in it. That's the only announcement I care about

I agree. And I'm in the same boat about JAI. No open source--no attention. Otherwise, you get stuff like the "Our Machinery" fiasco: https://www.reddit.com/r/gameenginedevs/comments/wd3o33/deve...

That engine popped into my head again today and I'm pretty sure that we're still no closer to finding out what actually happened.

Most likely some beef with Autodesk.

Also I'm not sure whay JB is expecting in 5 years when he releases a paid version and all the languages that were inspired by it are more commonplace.

Re: Mojo is available for local download

#186

Earlier quoted context omitted.

Hey, thanks for your interest. I think it's interesting that you think I don't care about things like whitespace vs braces? In the Lex interview I was kidding around, but I assure you, I do care. Braces are strictly worse than whitespace indentation for several reasons. Brace-based languages: 1) Generally have the "dangling else" set of ambiguities. 2) Some (e.g. C) allow but do not require braces which leads to styl…

Chris, Ha! I love your reply. Thank you. I know you care about language design. As I said more or less, that's self-evident, and I'm sorry for taking your whitespace comments too literally. You're the source, after all, not me, so accept my apologies there. It's misinterpretation, but not meant to be a misrepresentation. :-) My comment wasn't meant to be critical of you. Honestly, as a pretty famous engineer, it neve…

No worries at all, it's such a polarizing discussion point and always comes up. :)

Re: Mojo is available for local download

#187

Earlier quoted context omitted.

AFAIK, it's a general purpose language. I don't see any reason you wouldn't be able to use it for applications outside of ML.

Well there are countless obscure general-purpose languages and language implementations. What I meant by viable is that the user won't feel like a masochist because of weak tooling and library availability.

The goal is to have Mojo be fully compatible with Python, so that you should eventually have access to all of the libraries offered in Python. How many libraries will be written in Mojo remains to be seen, depending on whether it catches on or not.

Re: Mojo is available for local download

#188

Earlier quoted context omitted.

I concede about multi line lambdas but far too many languages take a “syntax is bikeshedding and unimportant” approach to language design. New languages are still using “&&” and “||” as if it’s 1975 and syntax highlighting doesn’t exist. Looking at C++, Rust and even Zig code is unnecessarily complicated for someone who isn’t intimately familiar with the syntax meanwhile for the most part anyone can understand Python…

> New languages are still using “&&” and “||” as if it’s 1975 Because it's consistent and people don't want to relearn minor details each time they switch. And Python has a lot of those little differences. Though the "and" and "or" keywords are among the few things I actually like. > meanwhile for the most part anyone can understand Python syntax What matters more to me is how the syntax works in the long term. I hav…

the lady doth protest a bit too much me thinks

> Recursive list comprehensions with their lack of parentheses are unreadable to me to this day (e.g.: `[item for sublist in list_of_lists for item in sublist]`)

1. there's no recursion here

2. it's literally just a double nested loop flattened (i.e. exactly matching the semantics) to be on the same line instead of indented and on two lines:

  [item for sublist in list_of_lists for item in sublist]
is the same as

  for sublist in list_of_lists:
    for item in sublist:
      item
like why would you need parens when you know the for starts the next nested loop.

Re: Mojo is available for local download

#189

Earlier quoted context omitted.

> New languages are still using “&&” and “||” as if it’s 1975 Because it's consistent and people don't want to relearn minor details each time they switch. And Python has a lot of those little differences. Though the "and" and "or" keywords are among the few things I actually like. > meanwhile for the most part anyone can understand Python syntax What matters more to me is how the syntax works in the long term. I hav…

the lady doth protest a bit too much me thinks > Recursive list comprehensions with their lack of parentheses are unreadable to me to this day (e.g.: `[item for sublist in list_of_lists for item in sublist]`) 1. there's no recursion here 2. it's literally just a double nested loop flattened (i.e. exactly matching the semantics) to be on the same line instead of indented and on two lines: [item for sublist in list_of_…

> why would you need parens when you know the for starts the next nested loop

Well that's the thing, I don't know the "for" starts the next nested loop because there's no indicator for that, and aside from that it's harder to see it at a glance. Nested loops have a colon, line break and deeper indentation inbetween, here you get nothing.

To me it feels like it breaks Python's own rules: the language omits curly braces for scopes but ensures readability with colon & indentation. But here the chained list comprehension nests two loops without any visible scope boundaries.

Perhaps it's just me and others can read it just fine, but that's my two cents on it.

Re: Mojo is available for local download

#190

Earlier quoted context omitted.

the lady doth protest a bit too much me thinks > Recursive list comprehensions with their lack of parentheses are unreadable to me to this day (e.g.: `[item for sublist in list_of_lists for item in sublist]`) 1. there's no recursion here 2. it's literally just a double nested loop flattened (i.e. exactly matching the semantics) to be on the same line instead of indented and on two lines: [item for sublist in list_of_…

> why would you need parens when you know the for starts the next nested loop Well that's the thing, I don't know the "for" starts the next nested loop because there's no indicator for that, and aside from that it's harder to see it at a glance. Nested loops have a colon, line break and deeper indentation inbetween, here you get nothing. To me it feels like it breaks Python's own rules: the language omits curly brace…

> Well that's the thing, I don't know the "for" starts the next nested loop because there's no indicator for that

`for` is a keyword in the language - you know that the `for` starts the next loop by the same reason you know `for` starts any loop.

The remainder of your complaint makes zero sense. You expect us to sympathize with an archetype (you) that is familiar enough with the language to know what a `for` loop is (basically week 1) but not familiar enough to spot the keyword. This is an archetype with zero instantiations (ie I'm calling bs on even you personally experiencing this problem).

Post reply on HN