I don't dispute that windows developers are in the majority - I dispute that other choices are as vanishingly rare as your initial comment suggested.
Anecdotally (I work at a large corp), slightly under half our devs use Linux. You only need to look at the array of software-for-programmers that's available under Linux to see that it's an extremely popular choice - the availability of programming software and libraries is generally better under Linux than it is under Windows.
While linux is certainly a bit more hassle to maintain than windows (I use a mac when given the choice, which i find gives me the best of both worlds), it's still a clearly superior environment for highly technical users. It's only recently with the introduction of Powershell that Windows has stopped being a substantial handicap for developers, imo.
An extremely large number of programmers use Mac and Linux machines. Linux on the desktop is sustained to a substantial extent by a programmer audience - and you only have to look at the availability of software for it to see that it's popular among that group.
Personally, when I'm not using a unix-y environment, it's because I've been forced. Using windows as a programmer feels like having one of my hands chopped off.
I think there's two really great things about retina screens on desktops/laptops:
- Firstly, I definitely notice the difference. The higher res screen is noticeably nicer to read. Sure, you don't need to go to the crazy extremes of some newer high res phones, but standard desktop monitors are noticeably ugly by comparison.
- Secondly, the res is high enough that you can finally change (apparent) resolution. My parents are in their late 60s and have bad-ish eyesight, so they lower the resolution on their screen. The result is incredibly ugly. Unfortunately resolution independent display seems to be a forgotten goal in modern OSes, so having screens that can change res is definitely worthwhile.
Hereditary, but not in a strong sense - to quote the american diabetes association:
> In general, if you are a man with type 1 diabetes, the odds of your child getting diabetes are 1 in 17. If you are a woman with type 1 diabetes and your child was born before you were 25, your child's risk is 1 in 25; if your child was born after you turned 25, your child's risk is 1 in 100.
Even if both partners are diabetic, the risk is only 1 in 10 to 1 in 4. This strongly implies that what is heritable is the vulnerability to getting diabetes, rather than getting diabetes itself. There is, presumably, some trigger that also needs to occur.
> Being a programmer is fucking boring ... They want you to spend your time ... optimizing their databases
Honestly, I really fucking love optimising databases. I can't believe my luck that people want to pay me to do that sort of work for 8 hours a day.
To me, hell is having to define and defend my own problem. I would loathe running a startup - I love the feeling, instead, of having people come to me to solve their problems. Fortunately, I've managed to arrange a situation where enough of those problems are reasonably interesting to my apparently unusual tastes :-).
This is not meant as a dig against those who run startups, just a note from someone with a very different perspective.
WITH and window functions are portable (and both awesome - they will change the way you write your SQL for the better). I'm not sure if WITH RECURSIVE is portable - my recollection is that oracle and db2 at least don't need/use the RECURSIVE qualifier for recursive ctes: they just work it out for you.
Time intervals are also in the SQL standard as I recall (although not in the format listed here - postgres supports standard syntax too though). Not sure how fully supported it is cross-database, though.
...data warehouses in general mostly use SQL, and lots of businesses use data warehouses successfully. Teradata, Netezza, Oracle, DB2, etc. I'm not sure why his statement was controversial - SQL's a great language for reporting and analytics.
I would imagine that for your average startup, using solutions that don't even support transactionality will cause greater complexity issues. Especially given the enormous window before db scale out/up becomes an issue on well-designed applications.
> LIMIT OFFSET queries are always going to be hard because you have to generate lots of rows only to throw them away
In fairness, that often depends upon the intelligence of the planner. A lot of sort-limit-offset queries can be reasonably easy and not generate too many rows if the planner works correctly and you have the right indexes.
edit: Assuming you're mostly picking up early pages as opposed to getting late ones, anyway - which is usually the case for, say, a comment system.
The problem is that by punishing companies and rewarding individuals, you tend to create an incentive for individuals to break the law (the risk/reward, on a personal level, gets skewed). In cases like this it's arguable that the individuals involved should be prosecuted.
Oracle and DB2 both offer ways to provide hints to the database about how you want the query processed, and the ability to store those hints independently of the query - Stored Outlines and Plan Stability being the features in question. This is particularly useful when you can't risk the plan changing in production and screwing you over - in that situation it's preferable to experience a gradual degradation->optimisation cycle personally.
It's one thing that I find it frustrating that Postgres (which I otherwise love) doesn't offer - I understand that they don't like optimiser hints, but at least the ability to say 'keep using the current plan until I give you permission to do otherwise' would be invaluable.
C# is an improvement in this regard - it at least gives you structs for when you need to store related data together without any greater overhead than you'd have in C.
Unfortunately unless you're on windows it's not that fast compared to Java.
Why not mess with colour? I have no need to see the 'correct' colour, if it's less comfortable to me.
I actually leave my LCDs at a redder tint most of the time now, as I find it more comfortable. This is particularly useful as most desktop LCDs won't adjust their brightness down far enough for me. Laptops are better, since they actually bother to adjust the power of their backlight.
Blind people who still like to listen to television may be a significant cause of this. They receive a 50% discount on both colour and b&w licenses, so from their point of view there's probably little reason to upgrade from a black and white television.
That's absolutely fair enough - I love that there's a variety of options out there for everyone, and I'm never going to criticise someone for finding what works for them.
I guess my point was more about the statement that there's no need for customization if the OS is well-designed - to my mind, there may be no need for customization for many (or perhaps even a majority) of users, but there is for some. An OS that tried to serve all niche needs without allowing customization would likely be a confused mess - and yet, for those users, having their niche need served can be extremely important.
My understanding was that at least on the lock screen there was no easy way to distinguish between different calendars - I want birthday reminders to show up persistently for at least a week before the event, which is obviously undesirable for most other events.
If the lock screen gets/has that functionality, I'm not sure what the real difference between that and a widget is - except that mine displays on the home screen while yours displays on the lock screen.
Anecdotally (I work at a large corp), slightly under half our devs use Linux. You only need to look at the array of software-for-programmers that's available under Linux to see that it's an extremely popular choice - the availability of programming software and libraries is generally better under Linux than it is under Windows.
While linux is certainly a bit more hassle to maintain than windows (I use a mac when given the choice, which i find gives me the best of both worlds), it's still a clearly superior environment for highly technical users. It's only recently with the introduction of Powershell that Windows has stopped being a substantial handicap for developers, imo.