My point is more that regardless of the syntax, runtime or approach, the same outcome is possible without having to enter a risky niche.
PHP does nothing, but if you throw it in a prefork MPM module in apache, it does that.
Sure we don't let it physically crash and we handle the exception at the base of the thread and decide what to do, but the outcome is the same. Java error handling is absolutely fine and in some cases, far less painful that the "err" semantics of Go.
1. Binaries: this isn't really an issue. We ship the JVM with anything that we do in Java. Unzip, run, done. Go is probably ideal there but it doesn't support embedded resources without some hideous hacks so you're still going to be deploying more than just a single binary in a lot of cases. CLR is pretty good at this as well.
2. Sockets: 0MQ/WCF/JMS/any stream abstraction wired up correctly.
3. ASN.1: Everything has ASN.1 libraries these days. I've never had to use one in the real world in any of the sectors I've worked in.
3. Let it crash: we do this. In fact we force threads to crash if they do anything bad by throwing an exception that isn't caught. All threads are designed to be idempotent, restartable and transaction aware. This is true in JVM/CLR at least.
4. Supervision: New thread, new state, no shared state. Not hard. PHP does this...
5. Inspection: I've seen the Erlang toolchain and it's pretty good but I'm not joking but inspecting and debugging the state of a system is better when there is lots of pooled knowledge (google) and lots of diverse tools. JVM wins there every time.
7. Messaging is not RPC: It's not in JMS either or WCF. It abstracts the transport away. In fact we have inproc transports in some cases that use concurrent collections to throw messages around.
8. Dialyzer: compiler, static typing (Java is less strong here to be honest than say C#).
I really like the idea of Erlang but the worse is better mantra applies here. It's easier to get staff, the knowledge when something goes pop is available, we benefit from the reuse of billions of lines of code written and tested by others if we pick a JVM. If we have to think a bit or throw some more kit at it, so be it.
Edit: just to add, I'm not knocking Erlang and quite like it in principle (I spent 2 months disassembling CouchDB to see if we could maintain it so it's not a foreign language to me), but the justifications in the reply aren't particularly unique ones nor are they major advantages.
Well I was in emotional, physical pain and panic like (I assume) a crack addict for a couple of weeks. It was horrid.
Then I was sitting down reading a book (Speaker for the Dead by Orson Scott Card) and realised I'd blown 4 hours on it rather than doing any work. Rushed and grabbed the laptop and nothing was broken, on fire and no one had emailed me. Then I did a two hour coding binge. Did more on that day than any other and it has just got better and better.
Concentration has improved as has tolerance and patience. I also read a lot more because I have the time to.
I'm only posting on here because I'm waiting for compile cycles :)
Exactly. I don't actually carry a phone these days and people think I'm crazy. Personally I just don't want to be available all the time but it has certain privacy advantages.
My X201 is fine with FreeBSD. in fact the battery life is slightly better than windows 8.1. Hibernate doesn't work so I just shut it down.
Performance isn't an issue really even though its an i5. If it is too slow, I ship the problem elsewhere (the feck off great big 24 core E5 HP Z620 in the office).
Sure there may be 10% difference between BSD and Linux but that's negligible these days versus the positives (like being able to just pkg install ruby21 without having to bugger around with rvm or wait three years for debian to pick it up in stable)
Well it's awesome until you want to leave or want support or thought wave was good or one of your users violates their ToS and they take your entire account out before you are even notified or its down for a few hours when you're about to drop a big presentation to that client or you find out that local legislation changes make it illegal to export data out of the EU or you're somewhere with a basic GPRS connection or none whatsoever.
These are all real problems I've had to work around.
In my sector (finance), literally everyone has some automation junk set up somewhere. They're usually written by one person and mailed around or stuck on fileservers somewhere or copied off a website somewhere badly.
It's surprisingly common. Even my wife who is a complete luddite has a couple of scripts for excel she copied off a web site to do a tax calculation.
The majority of the power of Office is only available on the desktop: COM, automation and integration.
This isn't a total give away, this is a loss leader which is just selling an editing front end for the files, not anything like the power of the full product.
However, I really think that Office on the desktop is a turd but it does make automation pretty easy but slightly awkward and painful. Perhaps this is bitterness from converting VSTO and Word interop to late binding all morning but I'm not a fan.
This is "meh" even to someone as embedded into the ecosystem like myself.
I worry about my father in this respect. He's getting on a bit and has been in and out of hospital with heart problems for about a decade now. He also has about 1TiB of crap on a NAS that I'm going to have to go through. Most of this is recent but there are thousands of files going back to TRS80 and early MSDOS systems, through 25 years of windows. All of this is code, mostly in BASIC and C. Everything he's ever done he has kept.
I'm just as bad really but I've kept it down to a mere 18Gb and it spans back to my first serious programs on Acorn RISCOS in BASIC and ARM assembly. I still fire up and emulator and fix bugs in them occasionally. They are still useful despite being old.
Nostalgia is painful sometimes however as not all those files are readable and perfectly preserved.
I had all sorts of sync problems with OneDrive so I canned it. I now keep a central SVN repository with all my stuff in it.
I use svn because TortoiseSVN tooling allows diff/merge of documents, it is centralised so there is a single source of truth and it works over WevDAV/http so i can access it on my mobile device if need be (I avoid this where possible and just use it as a tether).
My point is more that regardless of the syntax, runtime or approach, the same outcome is possible without having to enter a risky niche.
PHP does nothing, but if you throw it in a prefork MPM module in apache, it does that.
Sure we don't let it physically crash and we handle the exception at the base of the thread and decide what to do, but the outcome is the same. Java error handling is absolutely fine and in some cases, far less painful that the "err" semantics of Go.