Hacker Newsnew | past | comments | ask | show | jobs | submit | genbattle's commentslogin

I definitely feel this. I'm only 24, but already I can feel the effects of being in a chair for 8-16 hours a day. It's sad that it is happening so quickly, but it has really made me realize how much I need to break the cycle and start thinking about this now, rather than just deferring it till when I have time.

Also I deeply feel the mental bubble that forms around me when i'm programming. It makes it scarily easy to just start withdrawing from other people and the world around me.


I'm literally going through this at the moment.

I'm currently 24.

I do still love programming, and I'd like to think i'm pretty damn good at it. But do I want to be doing it as a job in 30 years time? I'm not so sure anymore.

I've been through one software job at the very loose-and-fast end of software development, but the pace (and a huge amount of overtime) burnt me out. I got to the stage where I couldn't get myself out of bed to go to work the next day. Over time I recovered somewhat, but I just wasn't enthusiastic about the work anymore.

My current job is at the complete opposite end of the spectrum. Medical software development is very slow, conservative, and methodical. To be honest I can see why most of the companies in this industry are at the thousands-to-tens-of-thousands scale; you literally need that critical mass in terms of staffing to deal with all of the overhead associated with a medical product. Reports, standards, committees, meetings, audits. And yet this company is doing it with less than 10 people.

It's really feel-good work, but it is really easy to get bogged down in the day-do-day drudgery and overhead, to the point where you completely miss the big picture of helping save peoples' lives. Do I want to be doing this when i'm 50? I don't think so.

In general in software development there's a couple of things that I've realized you have to work really hard at to have as a software developer. I've also discovered that both of these are much more important to me than I used to think:

-- Physical health and fitness: if you're sitting statically in a chair for 8-16 hours a day you have to really watch your diet and make continuous conscious efforts to exercise at every opportunity: it's going to catch up with you eventually (especially by the time you get to that 50 mark).

-- Varied and changing environments: both of my parents have "desk jobs", but both have extensive trips out of the office to visit customers or other sites. As a programmer I don't get this variety (the spice of life), so it's very easy to get bogged down and forget the big picture. I think this also leads to getting stuck in mental and emotional loops, due to a lack of external stimulus (kind of like what people who work from home report).

Nothing prepares you for actually being in a 9-5 programming job. At university it was obvious that there were people who were able to pass tests well enough, but would obviously struggle to code their way out of a paper bag. What about the people like myself, who are competent and practical, but are not prepared mentally to handle the rigors of 9-5 programming? Maybe that's why there is a shortage of labour in this sector: not only are we struggling to find people who are excited about programming and skilled at it, but we also struggle to find people who can handle working in these commercial scenarios?

There are also a number of companies that aren't like the examples above, especially in SV. But the problem with that is that not all of us are, or want to be, in Silicon Valley. Could I start my own company? Maybe, but that's not where my competencies or passions lie, at least currently.

Some deep thought is required about where exactly I will go next, given the time and effort I've invested up till this point into electronics, computers and programming.


I think he's not so much against having Minecraft run on Windows 8 at all (i'm sure if Java support it, it'll run), I think he's just more averse to serving it via Microsoft's store.

I think Notch is overreacting in this case because he's already supported Microsoft's platform monopoly with Minecraft on the Xbox 360 (which is completely closed), so this stance seems kind of contrary.

Possibly there's some sort of clause in Microsoft's contracts that says an Application on the Windows Store can't be sold outside the store or something which he's actually getting up in arms about.

I'm not particularly crazy about Windows 8 either, but Notch probably needs to be a little more specific with his protests (then again, it is just a twitter post).


>I think Notch is overreacting in this case because he's already supported Microsoft's platform monopoly with Minecraft on the Xbox 360 (which is completely closed), so this stance seems kind of contrary.

I only think it's contrary if you require people to have simplistic opinions. He wants an open platform when it comes to PC, but isn't that concerned about consoles. I figure he thinks that as long as he has one major open platform he can develop for, he's happy. Microsoft is making moves that suggest they want to move away from an open platform for the PC, so he's understandably concerned.


I can't remember where I read it, but he has the same attitude about Steam. Notch feels that he has a large enough userbase that Steam (or Windows 8 App store) doesn't offer enough advantages over Mojang's homegrown distribution system.


Likely his Twitter. I think he's said as much.


I think it was this interview (it was on HN a while back): http://www.rockpapershotgun.com/2012/09/15/future-talk-notch...


I can't edit now, but here's where I saw it.

http://www.pcgamer.com/2012/07/25/notch-on-why-minecraft-sti...


This may just be me picking on one small part of the entire post, but I have a serious technical problem with some of the author's claims, not least of which is his feelings that FPGAs will somehow revolutionize personal computing.

Anyone who has programmed with an FPGA will understand the sort of tasks they're best for; hand-optimizing particular algorithms and processes into parallel pipelines and execution units.

Running a general-purpose OS on a CPU built in software on top of an FPGA is just not feasible; the yeild of transistors to logic units is very low for FPGAs compared to conventional microprocessors; and there's matters of efficiency, layout, and cost-effectiveness to think of. There has been some success using an FPGA-type programmable gate array in combination with a standard CPU, but the CPU itself is usually a proprietary core made to coordinate and assist the FPGA. These sorts of FPGA co-processors are only ever used for very specialized aplications currently. They won't be replacing general-purpose dedicated CPUs anytime soon (if ever).

FPGAs are perfectly suitable for any special-purpose functions they've been programmed for: but I think in terms of desktop and mobile computing, having a farm of parallel execution units in the form of a modern GPU will also yield acceptable results for any parallel consumer applications without the need for as much investment as with dedicated reprogrammable FPGA hardware.

The other technical concern I have is mesh networks; we don't currently have the technology to create and maintain large-scale mesh networks, but even if we did, there is a point there the communication required just to maintain the network outpaces the node-to-node bandwidth, or even the global bandwidth available. You also have to deal with privacy concerns around data storage and transmission at nodes while it is en-route to a destination, and circle-of-trust issues, etc. These issues bring the pendulum in a full circle.

I agree that the pendulum does seem to be in a state of change at the moment, and all that is keeping it from swinging back (and probably giving it more overall momentum in the progress) is government and business interests.

I think the issues we face, and that we have always faced, are not so much technical as they are social and societal. By the time we solve the issues around the commons, ownership, and governance; the technical issues will seem trivial.


http://go-lang.cat-v.org/organizations-using-go

A very comprehensive list of the organizations using Go; I think it's kept reasonably up to date, but new ones are popping up on the mailing list from time to time.

For example, not to long ago we had the maintainer of pool.ntp.org asking some questions as he was rewriting some of the infrastructure for the pool from Perl to Go.


> Given that it has no template language

Ahem...

http://golang.org/pkg/html/template/

It doesn't have its own equivalent of RoR or Django yet because most of the batteries needed for web development are built-in.


My knowledge of this comes from the linked-to tutorial: "Web.go doesn't include a templating library. However, there are several good ones available, such as mustache.go. The template package in Go is not recommended for web.go because it doesn't allow templates to be embedded within each other, which causes a lot of duplicated text."

It seems that the web.go authors thinks that Go's template language batteries are of the wrong size.


Web.go is sort of the Golang equivalent of Sinatra or Camping, not really of Ruby on Rails.

What you're looking for is Revel. http://robfig.github.com/revel/


To be honest, I'm not looking. I'm only commenting that the original statement - that webgo is something like RoR - is incorrect. Thanks for the confirmation.


I've been looking at making a 2D game library for Go based on some older Go code, and various people have made similar efforts, but there's nothing yet that's full and complete. The best option in most cases is to use bindings to OpenGL/SDL/SDL2 for 2D, or bindings to a 3D game engine (Horde3D bindings are available, and there's at least one engine built largely in Go)

There have been a few people making games in Go. Games: http://www.kickstarter.com/projects/2066438441/haunts-the-ma... http://blog.iandavis.com/tag/amberfell/ https://github.com/iand/amberfell http://www.pokemon-universe.com/ http://code.google.com/p/pokemon-universe/

Engines/Libraries: http://code.google.com/p/gohorde/ https://github.com/genbattle/Go2D https://github.com/DeedleFake/sdl https://github.com/Agon/baukasten https://github.com/chsc/gogl https://github.com/foobaz/egl

There's prorbably more stuff around, but this is what I have collected so far. The biggest concern when making games is the GC; you'll either get a choppy framerate from occasional GC runs, or you'll get a consistent overhead from running the GC every frame. If/when the GC becomes concurrent this situation will vastly improve for games.


Thank you for the very informative post :)


I think in real usage (in my experience), this is very rarely the case. The only thing Generics are really extremely useful for is writing data structures that you can re-use with multiple data types.

Also, I tend to appreciate Go's approach of writing more code in these situations, because in general the code is still far more readable than a C++ Template (for example).

The Go creators have not ruled out adding Generics, they are simply being very careful about how they implement it. I would rather have this situation than something like a generic Java/C#/C++ style generics implementation rammed in because it is demanded by people who have hardly touched the language (or refuse to touch it until said feature is added).


"I think in real usage (in my experience), this is very rarely the case. The only thing Generics are really extremely useful for is writing data structures that you can re-use with multiple data types"

When working in .NET on framework-y code I use generics with reflection a lot because it makes it easy to remove a whole swathe of repetitive code. Mapping from one object to another using a Mapper<TFrom, TTo> with generic constraints, reflection and some over-ridable conventions springs to mind.

Not an argument for adding generics in Go, or against Go itself as I haven't yet found the time to play with it. However I do think generics can be more useful than people give them credit for.


The thing is that Go has generics already for the most common data types: slices (vectors, what Python calls 'lists', others call them 'arrays'), channels (iterators, generators), and maps (dictionaries, hashes). Since there's already a built-in map[T1] T2, so you wouldn't need to build it yourself, which saves even more work.


If what it has are a handful of special cases baked into the language, saying the language supports it is probably overselling (similarly, having types like `float[3]' doesn't mean we consider C as supporting dependent types).


"The only thing Generics are really extremely useful for is writing data structures that you can re-use with multiple data types." Take a look at C++'s STL: a large set of generic algorithms that work with any data structure (built-in or user-written) supporting the standard iterator protocols. Many people think of STL as "a bunch of container classes", and ignore the algorithms.


The great thing about Go as a web language is that alot of the bones are already there - templates and HTTP handling are already waiting for you in the standard library.

The most popular web frameworks i've seen for Go so far are Web.go (a Web.py clone) and Revel (a Play clone). Frameworks will develop organically over time. The only reason they're not very strong at this stage is because as I said; most of the batteries you need for web development are already included in the standard library.


> The most popular web frameworks i've seen for Go so far are Web.go (a Web.py clone) and Revel (a Play clone).

Unfortunately both web.go and specially Revel were developed by people that were not (yet?) familiar with Go's style, and they simply cloned what they expected from other languages and frameworks they were more familiar with.

Gorilla[1] and pat[2] (by the creator of Sinatra, who is now a Gopher) fit much more with the Go style and philosophy.

[1]: http://gorilla-web.appspot.com/

[2]: https://github.com/bmizerany/pat


To be fair, this will change as go becomes more popular and mature, I don't even know why people keep bringing it up.

Is "C" any more searchable? If C was 3 years old, search results would probably be dominated by pages on the letter "C". I remember search results when C# first came out: most search engines presumed you were talking about musical notes. Java searches kept showing me pages about coffee suppliers and distributors.

None of these languages have this problem anymore because they are mature, and the context around them is firmly established.

The accepted name for the language when doing searches is "golang", and Google does a great job at optimising results around this term. Also there's the IRC channel and Google group if you can't find what you need.


> Also there's the IRC channel and Google group if you can't find what you need.

The irc channel is #go-nuts in freenode, in case anyone was wondering.

And there is also http://www.reddit.com/r/golang


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: