Live data from Hacker News

Replacing Python

roscidus.com

101–110 of 144 posts

Re: Replacing Python

#101
post #19

I like articles like this one, but this doesn't really bode well for 0install.

Any particular reason why? We just released 0install 2.4, which has around 10,000 lines of OCaml. It seems to be working well so far, but there are bound to be a few bugs... we can always use more testers!

Re: Replacing Python

#102
post #23

I find it suspicious that Java or Scala didn't make the list. Java may not be sexy but it checks many boxes... And I suspect that Scala would have been a serious contender in brevity too.

Yeah, it's a joke that Rust (which I think will be a great language, but all of the syntax hasn't even been decided yet) is being considered, when Java and friends are not. Really, this article is about "I want to rewrite my program in the newest, coolest language", not about which is the best tool for the job. And that's fine, but the author should present it that way.

It's already been said that Java is a very heavy dependency for a simple desktop application. Rust compiles to native code, that's the advantage over Java.

Re: Replacing Python

#104

Wonder if he looked at Nimrod. On paper that is a language that would both fit his needs and would not be a far leap from his current Python implementation.

When I looked at Nimrod it seemed very raw to me: REPL malfunctions and crashes, the whole language seems to be more an enthusiast effort than a production-quality tool. Rust is very raw too, but it already looks pretty solid.

Re: Replacing Python

#105
post #98
post #82

Earlier quoted context omitted.

Yes, in terms of concepts, Go is pretty much a Java 1 with a native compiler as default implementation. However, it may still be quite good to move developers not doing kernel/drivers/embedded stuff, away from C into a more secure language.

Seems to be a common sentiment, but from where I'm standing there are at least a few huge differences between Go and Java: * duck typing * goroutines * channels And some smaller but still important differences: * Very light-weight Public/private distinction * Slices * Objects that embed directly in other objects, not as references * Return-value error handling; only a very restricted form of exceptions

> goroutines * channels

java.util.concurrent offers tasks and queues.

As for the rest, they are not unique to Go, better languages offer similar features.

Re: Replacing Python

#106
post #85

Earlier quoted context omitted.

Re dependency: you probably have a point on Windows, but it's your choice to use an OS without a package manager to keep things up to date. I don't know about Mac but on Linux it is a non issue. That said it does not do well for desktop apps due to slow startup, high memory use and lack of native toolkit. It does much better as a server side runtime.

Although one of the best desktop RSS readers (RSSOwl) and two of the best IDEs (Eclipse & IntelliJ) are written in Java.

Of these, I have only tried Eclipse. While certainly more full-featured out of the box, its speed, especially at startup, is really nothing to boast about when compared to Visual Studio.

Re: Replacing Python

#107
post #82

Earlier quoted context omitted.

Yes, in terms of concepts, Go is pretty much a Java 1 with a native compiler as default implementation. However, it may still be quite good to move developers not doing kernel/drivers/embedded stuff, away from C into a more secure language.

>> However, it may still be quite good to move developers not doing kernel/drivers/embedded stuff, away from C into a more secure language. Yeah, only that you wont do this sort of things in a memory managed language like Go. They make you think is low level(PR ?), only that it isnt THAT low level ;) Go should be able to switch off the GC, and allow people do to manual memory management if it really want to be that l…

No one forbids you to call into the OS and manually allocate memory.

Oberon family, Modula-3 are two examples of languages with OS that were used in real life situations, although in academic context, for several years.

Native Oberon System 3 and AOS were quite powerful desktop OS for the 90's.

Although I must concede their unsafe package is more powerful than Go's unsafe package.

Anyway, nowadays I personally prefer Rust or D nowadays.

Re: Replacing Python

#108
post #107

Earlier quoted context omitted.

>> However, it may still be quite good to move developers not doing kernel/drivers/embedded stuff, away from C into a more secure language. Yeah, only that you wont do this sort of things in a memory managed language like Go. They make you think is low level(PR ?), only that it isnt THAT low level ;) Go should be able to switch off the GC, and allow people do to manual memory management if it really want to be that l…

No one forbids you to call into the OS and manually allocate memory. Oberon family, Modula-3 are two examples of languages with OS that were used in real life situations, although in academic context, for several years. Native Oberon System 3 and AOS were quite powerful desktop OS for the 90's. Although I must concede their unsafe package is more powerful than Go's unsafe package. Anyway, nowadays I personally prefer…

The problem is not that you can't manually allocate memory, it's that you cannot not automatically allocate memory.

Re: Replacing Python

#109

A quick comment concerning Haskell. I've been learning it on and off, with some help from my roommate who's a Haskell genius. The way he writes Haskell always amazes me. He starts with a very straightforward verbose version, then constantly refactors it (on the fly, it's not a separate step), abstracting stuff out in typeclasses and monads until it seems that most of the code is just monads and typeclasses definition…

Interesting. I wonder about maintainability if the writer's "obvious" version is only there to be refactored out. Can you still read the intent when he's done?

Re: Replacing Python

#110
post #107

Earlier quoted context omitted.

No one forbids you to call into the OS and manually allocate memory. Oberon family, Modula-3 are two examples of languages with OS that were used in real life situations, although in academic context, for several years. Native Oberon System 3 and AOS were quite powerful desktop OS for the 90's. Although I must concede their unsafe package is more powerful than Go's unsafe package. Anyway, nowadays I personally prefer…

The problem is not that you can't manually allocate memory, it's that you cannot not automatically allocate memory.

That's debatable, as you can write the code in such way that it does not trigger allocations in a specific situation where it might be critical.

Having used Native Oberon in the 90's, I became convinced that system programming languages with GC are possible.

Latest versions of AOS even had video players with good framerate written in Active Oberon, with some Assembly snippets.

However, in the Oberon family, besides NEW, the other implicit memory allocations are only triggered by string manipulation and starting tasks, if I recall correctly.

Post reply on HN