Hacker News new | comments | show | ask | jobs | submit login

It's unfortunate that languages are so monolithic. You want to make a language that does concurrency differently and you end up having to design date format strings! Sad that we still don't have any kind of common libraries or whatever it might take to just do this a couple of times and let language designers pick and choose the preexisting components they want.



"Sad that we still don't have any kind of common libraries or whatever"

We do have those. In this case the common library is called "libc." In this case (and in a few others) the Go team decided to intentionally avoid providing an interface to this function.

The good news is it would take just a few minutes to add support for go to call strftime directly from libc.


Common libraries in C could easily be used via FFI in most languages; they generally aren't because different languages have different paradigms (you might even say that's their purpose), and translations from one language's idioms into another are always lossy.

Besides, users of a library in language X don't want to have to read language Y to look under the hood.


There are dozens of open source programming languages. If one really just wants to create a language with improved concurrency support, he/she can just take one and modify it – this would work a lot better than relying on ready-made components/libraries which can't be modified.

There are some mature languages with an active "modding" community. Haskell, for example.


Surely what we need, the thing that would make focused innovation easiest, is the ability to implement Go's concurrency model in an existing language?

Which we have. Several groups have done this. eg http://docs.paralleluniverse.co/quasar/


> You want to make a language that does concurrency differently and you end up having to design date format strings!

No, you don't. You can use one of the 30 existing ways of formatting dates from other languages. You might have to implement it yourself but you don't have to design it yourself.

This is a symptom of the main problem with Go. Its creators either don't know about or have chosen to ignore most of the last few decades of language design and do their own thing when it doesn't add anything significant. And no, they don't do concurrency differently: coroutines have been around for a long time.


If you use Go and want strftime then use one of the available libraries: http://godoc.org/?q=strftime


This is one of the big upsides of languages like C# or Java that have a lower-level virtual machine runtime that can be shared across different languages. In fact it was the suffering endured by the Gnome team trying to support different languages on top of C that eventually led to the Mono project.

Unfortunately there are also some downsides to the virtual machine approach but I still think there's a window of opportunity open here for Microsoft if they make the CLR robust and reliable on Mac and Linux.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: