News for hackers. Stuff that matters.
Re:Re: Moving from PHP to Go and Back Again by noncoml on Tuesday December 12, 2017 @01:22AM (#15903396)
> And yet we keep writing Go.

What are the alternatives if you want something with type checking? Java? No, thanks. Haskel? Where are the libraries? C/C++?

I guess Typescript is the only alternative

Re:Re: Moving from PHP to Go and Back Again by Lazare on Tuesday December 12, 2017 @01:48AM (#15903491)
I've been eyeing up Pony (https://www.ponylang.org/) a lot lately. To my eye, it has a lovely syntax and a very useful mix of modern programming features. I'm particularly enamored of the types, safety, actor model, and absence of exceptions. From a distance, it looks like the best parts of Rust, Golang, and Python.

> Haskel? Where are the libraries?

Well, I suppose the same drawback would apply to Pony. :)

Re:Re: Moving from PHP to Go and Back Again by powerslacker on Tuesday December 12, 2017 @02:18AM (#15903628)
I've seen a lot of stuff on Pony as well and it looks promising. Have you built anything with it yet?
Re:Re: Moving from PHP to Go and Back Again by Lazare on Tuesday December 12, 2017 @07:13AM (#15905000)
Not yet, but I'm looking forward to it; just need to find a good project.
Re:Re: Moving from PHP to Go and Back Again by Erlich_Bachman on Tuesday December 12, 2017 @06:30AM (#15904738)
What is your problem with Java? What does "No thanks" mean? It's interesting to hear your perspective, but hard to know what you mean if you don't write it. (Also have you even looked at Scala, Kotlin, Groovy with static typing, and perhaps others?)
Re:Re: Moving from PHP to Go and Back Again by pjmlp on Tuesday December 12, 2017 @03:41AM (#15903958)
Java, C#, F#, C++, D, Rust, OCaml, Haskell, FreePascal, Ada, Swift, Nim look all pretty fine to me, and yes there are ways to compile Java and .NET languages to native code just like Go.

As for libraries, what matters is if the desired use case is covered, not winning the App Store count.

Re:Re: Moving from PHP to Go and Back Again by cgag on Tuesday December 12, 2017 @05:07AM (#15904317)
I like go for most things more than all of those, though F# would be promising if I felt better about .net stuff and Linux.
Re:Re: Moving from PHP to Go and Back Again by joshbaptiste on Tuesday December 12, 2017 @01:42AM (#15903473)
Re:Re: Moving from PHP to Go and Back Again by didibus on Tuesday December 12, 2017 @01:58AM (#15903537)
Scala, or C# ?

There's Nim and D too, but I get the lack of big commercial backing could disqualify them.

Re:Re: Moving from PHP to Go and Back Again by LOLOLOLO1 on Tuesday December 12, 2017 @05:27AM (#15904406)
Scala is a perfect example of how NOT to design languages.
Re:Re: Moving from PHP to Go and Back Again by patricklouys on Tuesday December 12, 2017 @03:21AM (#15903878)
Modern PHP is really nice to work with. I uploaded the sample code from my book on Github if you want to have a look (check inside the src directory).

https://github.com/PatrickLouys/professional-php-sample-code

Re:Re: Moving from PHP to Go and Back Again by shmish111 on Tuesday December 12, 2017 @07:28AM (#15905099)
"Haskel? Where are the libraries?"

What libraries are missing? The only issue I've had with libraries are that some client libraries are wrappers over C libraries and this makes static linking difficult (or seemingly impossible on a Mac)

A few years ago there was a lack of libraries in some areas but that's not the case these days.

Re:Re: Moving from PHP to Go and Back Again by blackoil on Tuesday December 12, 2017 @03:32AM (#15903919)
C#. Its pragmatic and now cross platform, has got OOPS and the functional features you need.
Re:Re: Moving from PHP to Go and Back Again by mustardo on Tuesday December 12, 2017 @04:33AM (#15904174)
I like C# as a language but everytime you use it a puppy dies (MS exists)
Re:Re: Moving from PHP to Go and Back Again by MrBuddyCasino on Tuesday December 12, 2017 @01:31AM (#15903427)
Kotlin.
Re:Re: Moving from PHP to Go and Back Again by kaeawc on Tuesday December 12, 2017 @02:48AM (#15903742)
Have you gone to production with it yet for your backend? Curious Android dev here.
Re:Re: Moving from PHP to Go and Back Again by vishbar on Tuesday December 12, 2017 @07:46AM (#15905185)
We use it in production for a Storm-based ETL pipeline. We've not had any problems that have been related to our use of Kotlin.
Re:Re: Moving from PHP to Go and Back Again by MrBuddyCasino on Tuesday December 12, 2017 @07:35AM (#15905135)
Not yet, but zero issues so far. Currently running Spring Boot 2M7 on AWS EB just fine. I was surprised how smooth it went.
Re:Re: Moving from PHP to Go and Back Again by MrBuddyCasino on Wednesday December 13, 2017 @02:45PM (#15916953)
Correction: found an issue with bean validation.

https://github.com/spring-projects/spring-boot/issues/11343

Re:Re: Moving from PHP to Go and Back Again by MrBuddyCasino on Thursday December 14, 2017 @08:55AM (#15922240)
And it turns out it wasn't really an issue, just unintuitive. Documentation has been updated.
Re:Re: Moving from PHP to Go and Back Again by mustardo on Tuesday December 12, 2017 @04:37AM (#15904186)
Worked on at least 2 projects using it in production (backend) zero language issues
Re:Re: Moving from PHP to Go and Back Again by psergeant on Tuesday December 12, 2017 @01:33AM (#15903439)
I’d really like a strongly typed (or optionally typed) Python or Perl derivative. Rust feels most Perl-like so far.
Re:Re: Moving from PHP to Go and Back Again by patricklouys on Tuesday December 12, 2017 @01:35AM (#15903449)
Modern PHP is very nice to work with. Ignore the haters that haven't touched the language in 10 years.
Re:Re: Moving from PHP to Go and Back Again by Lazare on Tuesday December 12, 2017 @01:53AM (#15903518)
To be fair to the haters, even modern PHP can be horrible. The old nightmares are still around; we've just agreed to ignore them, and maybe deprecate a couple of the worst. (And ternary syntax is still broken, and the standard library is anything but standard.)

But yes, if you're working on a modern PHP project, there's a lot to love: A solid module system, an enormous sea of high quality libraries, type checking, a really nice deployment and scalability story, decent performance, good tooling (IDEs, debuggers, etc.), a servicable C-style syntax. For many purposes (not all!) it's ten times better than, eg, nodejs. (Which might seem like a low bar, I admit...)

Re:Re: Moving from PHP to Go and Back Again by nurettin on Tuesday December 12, 2017 @02:02AM (#15903560)
Is it better than nodets?
Re:Re: Moving from PHP to Go and Back Again by Lazare on Tuesday December 12, 2017 @07:33AM (#15905127)
nodets, as in typescript on node? I haven't personally tried it, but I imagine so, again depending on your particular use case.

I quite like Typescript as far as syntax goes, but I think PHP 7.1+ is comparable. And PHP has a lot more support, libraries, and better tooling in my view. For example, my experience in node land is there aren't really any good ORMs; PHP has multiple, including one (Doctrine) which is easily the equal in my view of the highly regarded Python SQLAlchemy. Similarly with routing, frameworks, templating, etc., there's a huge amount of maturity on the PHP side that's missing from node.

The big question is going to be in the process model. Node has an event loop; PHP doesn't. For most purposes, I think an event loop makes writing good code harder to no real benefit, but in some cases (eg, acting as the endpoint for a ton of open websockets) it can be a big win. If you do need that, then you should probably lean towards node over PHP, and sure, why not use typescript? But for the general case, I'd still lean towards PHP.

(Then again, there's also a ton of other languages and frameworks. Just because PHP - or node - might be better than the other for some task doesn't mean there aren't a dozen more languages better than both.)

Re:Re: Moving from PHP to Go and Back Again by nurettin on Tuesday December 12, 2017 @11:57PM (#15912116)
In your view, if someone created an ORM for node which focused on creating object graphs for tables and fields (a-la sqlalchemy) instead of focusing on SQL building syntax (a-la knex) would it be popular?
Re:Re: Moving from PHP to Go and Back Again by lpghatguy on Tuesday December 12, 2017 @02:15AM (#15903612)
Solid module system?

It's still the same as C, which is _not_ a solid module system.

Re:Re: Moving from PHP to Go and Back Again by patricklouys on Tuesday December 12, 2017 @03:10AM (#15903829)
I'm assuming he meant the dependency manager, which is really nice.

https://getcomposer.org/

Re:Re: Moving from PHP to Go and Back Again by Lazare on Tuesday December 12, 2017 @07:09AM (#15904979)
Correct. :)
Re:Re: Moving from PHP to Go and Back Again by powerslacker on Tuesday December 12, 2017 @02:11AM (#15903601)
I wrote some PHP last month and I still hate it :)

Though it has improved dramatically.

Re:Re: Moving from PHP to Go and Back Again by patricklouys on Tuesday December 12, 2017 @03:11AM (#15903834)
Did you write clean OOP code? You can still write bad code with it, no doubt about that.
Re:Re: Moving from PHP to Go and Back Again by bringtheaction on Tuesday December 12, 2017 @01:45AM (#15903479)
Re:Re: Moving from PHP to Go and Back Again by TurboHaskal on Tuesday December 12, 2017 @03:32AM (#15903923)
Why do you say that? I love both Perl and Rust, yet the latter doesn't feel very perlish to me.
Re:Re: Moving from PHP to Go and Back Again by psergeant on Tuesday December 12, 2017 @03:38AM (#15903951)
Seems it’s optimized for developer enjoyment and is a big language that allows for terse expression, as well as a few ways to achieve the same thing.
Re:Re: Moving from PHP to Go and Back Again by catnaroek on Tuesday December 12, 2017 @10:34AM (#15906275)
Any measure by which Rust allows for “terse expression” has to be horribly broken. (And I don't even dislike Rust.)
Re:Re: Moving from PHP to Go and Back Again by pjmlp on Tuesday December 12, 2017 @09:26AM (#15905736)
Maybe you should look at Crystal, a Ruby derivative.
Re:Re: Moving from PHP to Go and Back Again by dom96 on Tuesday December 12, 2017 @05:43AM (#15904495)
Have you looked into Nim?
Re:Re: Moving from PHP to Go and Back Again by pasta on Tuesday December 12, 2017 @01:31AM (#15903430)
PHP has object checking. This is why I started using value objects in PHP.

The VO's I use trow exceptions when you construct them with some bad value. This is great because when you use for example a natural positive integer object you are sure it is one.

So now I have 'type checking' and more secure code in PHP.

Re:Re: Moving from PHP to Go and Back Again by patricklouys on Tuesday December 12, 2017 @01:38AM (#15903459)
PHP also supports other type declarations. But using lots of value objects is a good idea anyway.

http://php.net/manual/en/functions.arguments.php#functions.a...

Re:Re: Moving from PHP to Go and Back Again by stiGGG on Tuesday December 12, 2017 @10:11AM (#15906065)
Since when does PHP has value types? Aren't all the classes reference types or you mean that Array thingie?

And it is still the case with type declarations, that they make your code actually slower, because the runtime adds asserts in your code which gets evaluated at runtime?

Re:Re: Moving from PHP to Go and Back Again by zaphar on Tuesday December 12, 2017 @09:28AM (#15905744)
Runtime type checking while useful does not offer the same level of safety as compiler time. It will catch sinner classes of errors but you'll still have bugs lurking in production.
Re:Re: Moving from PHP to Go and Back Again by coldtea on Tuesday December 12, 2017 @05:37AM (#15904464)
Because Typescript (or Javascript) has more quality libraries than Haskell?
Re:Re: Moving from PHP to Go and Back Again by mustardo on Tuesday December 12, 2017 @04:30AM (#15904161)
Kotlin, C#, Scala
Re:Re: Moving from PHP to Go and Back Again by thegayngler on Tuesday December 12, 2017 @01:53AM (#15903513)
What about Apple's language Swift?