We at $Famous_company Switched to $Hyped_technology
saagarjha.com
saagarjha.com
But the really sad outcome is that $Hyped_technology is a big failure, but $Famous_company spent too much effort, and $Famous__technical_person too much of their social capital, to want to talk about it. Then all kinds of little startups that have heard the talks, read the blog posts, and then decide that if the solution was good enough for $Famous_company, it must be good enough for them!... except that it wasn't, and a lot of expensive engineers spent a whole lot of time making things work again, abandoning $Hyped_technology altogether. Unfortunately, the landmine documentation advertising the decision is still everywhere, including getting referred to by sales engineers of $Hyped_technology.
The article described Flipboard's migration from a browser DOM-based app to an entirely canvas-rendered one, which made the whole thing invisible to screenreaders.
There was just a throwaway line at the end on accesibility: "This area needs further exploration."
This was an actual pitch point to switch language and stack in a previous company.
At some point the CTO+HR dept made the calculation that it would cost less in the long term to rewrite our services in a new language and bring in cheap/abundant devs, than to bring in more people familiar with the current stack and continue scaling it, as those had an higher average salary on the market.
I'm also reminded of when Twitter claimed that it was Rails' fault that they didn't have better moderation tools. One of the most hilarious excuses I've ever heard.
And still people are so fast to convert to latest frameworks and do complete rewrites. Most of the time recreating bugs they thought they got rid of many years ago. Or just make loads of new bugs. Or make it so slow on old phones that it can't be used any more.
Lucky for them their only competitor is Notion, another slow js app.
I think Silicon Valley illustrated this concept best. Just posted this clip a day ago to my twitter, so I too have felt the searing pain of being an IT architect and watching the right solution decisions get snowplowed - https://www.youtube.com/watch?v=ySDX02WD0og
Recruiting cheaper programmers will probably look nice on immediate results for a time, assuming the rewrite progresses well.
Whether the flood of bootcamp grads which, thanks to law of large numbers, will also contain a lot more bad choices and overwhelm your filtering ability, be actually good stewards for continued existence of things possibly critical to the business... is a completely different thing.
Possibly, but on the other hand, "adding more developers to a late project just makes it more late".
It all just feels like a colossal rathole to me. I'm feeling exhausted just thinking about it.
I am a creative builder. There’s something inspiring about building things in a new format, the same way an artist might explore art in a new medium.
I get frustrated with the parts of the company that use “technology X” because it’s a “core competency.” I’d be more accepting of this argument if I didn’t notice a strong correlation between proponents of this strategy and people who often do bare minimum maintenance, purely market request driven, nothing inspiring or innovative or game changing. Then competitor does something cool next door and tue blame game starts as the pink slips issue.
Evolve or die.
There is of course the flip side of this coin, and the yen-yang of balance is what makes for the best strategy.
The value in one's application is the domain specific part (the product). By switching the tools, which almost always are created outside of one's organization, you don't enhance your product.
With each rewrite you risk the advantages of your existing product and you will still be a consumer of third party language/framework, just another one yet without experience.
Suffice to say nobody I ask outside of this company wants to adopt this model: Retained old platforms plagues the banking and finance sector. A 1950s OS called LEO was emulated by a 1960s OS called GEORGE which in turn is emulated by 1970s and 1980s ICL/Fujitsu mainframes, all because the core finance app is in COBOL and two greybeards per bank are on $mil to keep it working...
- Does that COBOL code do the thing(s) it's supposed to in a reliable and 100% predictable way?
My guess is : Yes it does.
So let's go down your path. You rewrite that COBOL program using your hot new recent language of choice. How many new bugs will be introduced? What other risks are there in this new language; CVEs? RCEs? Simple coding bugs which could cost that bank millions/billions/trillions - or just as bad, the bank's customers their savings/livelihoods?
Which New Hotness language would you rewrite that crusty old COBOL application in?
Rust? [0] Golang? [1] Something else?
There are times when it's better to leave the New Hotness to some new application rather than trying to replace a known reliable/predictable system with New Hotness. Especially for banking.
[0] https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust [1] https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=golang
Rust might be the sexy language but surely Erlang or Haskell would be the wise choices?
For the bank example, if you’re given another system to sync with and you’re still full COBOL, I’d assume it’s just a whole world of pain for years and years. Meanwhile the other banks move forward and integrate newer systems way faster and in more secure ways than you do, directly affecting your business.
Big bang rewrites are dangerous, gradual migration is a better plan for larger systems.
I think we're on the same page. Yes, it needs to be gradual, and devs need to become familiar with new languages, which is why I am proponent of slowly "modernize" old stacks even if there is no immediate need to do it.
By the time you have something that is as good as what you had before the rewrite in the new programming language, the cost reductions will not be worth it.
We had to scale our $STANDARD_LANG application. Turns out it wasn’t fun.
But you know what is fun? Writing tiny, non-essential MVPs in $SHINY_LANG. We haven’t tried scaling our $SHINY_LANG apps yet or deploying to production, but we’re excited about the future and we’re enjoying coding again!
I remember some people getting bit by some Go stuff early on. Things take time. It will get there when it gets there. Then they come to HN and create a "why $technology sucks" when they a) didn't read the manual b) didn't match their requirements with the capabilities of the lang c) had unreal expectations
Don't buy the shiniest Tesla then use it as your building contractor car. Especially when you like to overload the rear axis and pretend that's just not an issue.
And really it'll be better for your career to embrace this and learn the tech stack by fucking up some unsuspecting startup and then bouncing somewhere big enough to actually use it.
https://www.joelonsoftware.com/2000/04/06/things-you-should-...
I'd like to see him say with a straigh face that it is a good idea to stick with VB6 indefinately.
There is a lot of wisdom in his post, but it isn't always practical or possible to evolve a legacy code base.
Any of the previous incarnations of those ideas could have iterated into success, but it turns out it was easier to spin up a new product (even a completely new team / company / culture) with a clearer focus / path to improvement / culture than it was to turn around a barnacle-laden ship. Sometimes a rewrite / rethink is the best way forward.
It’s a completely different scenario to do greenfield implementations in existing categories vs managing the literal replacement of existing software with the same thing written in a different language.
This Joel blogpost is always trotted out as some kind of gospel, and I think it’s stymied a lot of clear thinking around the possible merits of a rebuild.
Hardly. It used several external libraries, including those from Netscape and Apple, who also made web browsers.
All these stack write-ups are always either recruiting posts, or self-branding by the author.
Booking.com, partially all of the faang etc. to name a few
What did evolve is the arrival of the client side frameworks. It's a change, but is it better? I don't think there's enough evidence today to definitively say so.
https://news.ycombinator.com/item?id=23144380 (1224 points | 2 years ago | 200 comments)
Cue argument about non typed scripting languages with garbage collection not belonging on long running server processes, etc… “There’s this thing called the stack, a request response cycle fits inside it and actually http is stateless probably due to contemporary stack limits”
I agree, and found the article funny.
individual devs have to stay relevant, learn new technologies to up their market vaule products want a simple, reliable and working solution, not some new, but well known technology organizations want tech to be homogeneous over more then one product to be able to shift devs around, reuse know-how etc.
Anyone know?
That one of the founders is whiter than average and his parents were not poor, thus all his success obviously comes from one of his many priviledges, nevermind any hard work, determination etc?
(Note: am not white myself, I just prefer to judge people on their merit)
I agree there are way less classic nerds - I don't meet too many devs these days that run linux or are really into sci-fi. But I also see hardly any tech bros. What I do see a lot of is a certain kind of "socially conscious" programmer. You know the kind - they love codes of conduct, they have cushy jobs but are super eager to tell you about how things work "under capitalism", they enjoy chatting on discord and probably don't know how to connect to IRC, they have a Mac, etc etc.
Is there a good derisive term for them?
I always assumed the label was derived from the huge influx of people into CS in the late 90's and very early 2000's because of the dot-com boom. I know there were a lot of people at my school at that time that seemed like they would have been in business or finance classes if not for the obscene money they saw thrown around by internet companies when in highschool or before choosing a major.
I mean, that's a valid choice and people are going to choose careers based on money, but if that ends up wildly changing the makeup of the people commonly in that career, you can expect the people that went into it for interest in the work to come up with some salty nicknames for those they see as interlopers.
I've heard a few, but they don't seem to stick: for a while, Social Justice Warrior was in vogue, and lately, I'm seeing a bunch of variants of woke, which I imagine are spoken italicized to signify vitriol and/or contempt.
Edit: I had forgotten cuck - though that's broader, and would be used as a derisive to all persona non grata not just the nerds.
Sure, but that's pretty much by definition a dudebro mindset.
https://www.google.com/search?q=techbro&source=lnms&tbm=isch...
https://www.google.com/search?q=tech+bro&source=lnms&tbm=isc...
For the same reason that an image search for "successful CEO" shows white men. Google's results are both a reflection and amplification of any input biases.
But, the claim was that "techbro" was wrongly being conflated with "white man." In this case, we're talking precisely about these biases. These image search results seem to be evidence against that claim.
Similar search in Google images also tend to match various stereotype (basketball player, hotel housekeeping, etc). Google will generally reflect what's on the Internet.
Search "tech bro" -tv -hbo and you get similar results:
https://www.google.com/search?q=%22tech+bro%22+-tv+-hbo&tbm=...
If anything, especially on the first page, the images get a little whiter when you add -tv -hbo to the search string.