cowabunga
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.
Yes it is far superior from a representation point of view at least there. I have no doubts about that.
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.
I would check the Lenovo recall page (google it) before paying for one. That's where I got my new one from - they replaced it free of charge ;-)
Windows 8.1 Pro with Lenovo power manager installed via windows update.
Dual boot.
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 :)
It's now a nice clean late-bound C# command line tool and powershell cmdlet.
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)
These are all real problems I've had to work around.
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.
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'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.
And that's exactly how it should be.
I will say that this time is only available from ruthless automation and organisation.
I spend the other 20 hours making sure I only have to do 20 hour weeks forever (startup).
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).
Now that last point is the important one and is actually what I do which I was hoping to hear somewhere :-)
When you have 512MiB of memory and your current allocation is 256MiB, where do you go?
Also when your dataset allocates 64MiB up front, then chucks two bytes on the end, where do you go?
Know thy data and test test test is the only rule.
EV signed software is usually done off the internet. In our case we use a physical key to sign it offline and then upload.
For ref, I don't use PowerPoint, I do write (a fuck load of) code, don't organise meetings and don't speak in buzzwords. I do however have a thinkpad so that's the only stereotype...
curl + bash is suck and blam the machine. Hope you didn't do a sudo in the last few seconds...
http://www.nastybastard.com/funky-super-installer.sh:
#!/bin/bash
echo "mwuhahahaha"
sudo rm -rf /boot