Live data from Hacker News

Ask HN: What is the ideal developer experience in 2020?

news.ycombinator.com

41–50 of 92 posts

Re: Ask HN: What is the ideal developer experience in 2020?

#41
"Rethinking from first principles" and "reinventing the wheel" are pretty easy to conflate. Proceed with caution.

My recommendation is to choose boring technologies that are widely deployed so that people will have to support them for decades to come. If there isn't a mature, well-supported option in a space, it's better to roll your own than to spend a bunch of time learning a technology and writing code, and then have to relearn and rewrite in 2 years when that technology is no longer supported. The bigger and more complex something is, the more you should let it get boring before you commit to it.

Here's what I'm using:

* Django

* Django REST Framework

* Celery

* React/React DOM

* ImmerJS

* Postgres

* Redis

* Nginx

For the most part, if it's not on this list, I try not to use it. There are other libraries I'm using, but nothing I would recommend.

There are a lot of things I hate about Django. But it's a boring technology and that outweighs the other concerns. It works and I have no doubts that it will continue to work well.

The one thing on this list that's not a "boring" technology is ImmerJS. This is not a complex technology, so I'm a bit less worried about adding it to my stack. And it allows me to avoid the global state that Redux or similar tools force you into[1]. If a better solution emerges, I don't think switching from Immer will be very difficult, and if Immer loses support, I don't think there will be much difficulty in continuing to use it.

[1] Yes, I understand how reducers work. If you don't understand that reducers are a way of pulling out one part of global state, you do not understand how reducers work. Sure, reducers make using global state less painful, but introducing complex tools to deal with problems created by your other complex tools is not a good strategy.

Re: Ask HN: What is the ideal developer experience in 2020?

#42
post #34

I don’t know about you guys, but .NET Core (c#) and Visual Studio along with Blazor on the front end and deploying on Linux is pretty darn cool and highly productive. I haven’t had much success getting as productive on Python, Golang, or Node. Blazor eats TypeScript for lunch. Sometimes people confuse complexity for productivity. You can’t tell me installing 60,000 NPM packages just to have one dependency break is yo…

So I guess I should stop doing everything else and adopt a brand new M$ tech that totally blows out of the water what M$ offered a few years ago, which M$ said totally blows out of the water what M$ offered before that. Got it.

It isn’t 1999 on Slashdot anymore. Using a dollar sign on a site dedicated to an ecosystem surrounding venture capital and all its friends just makes you look hilariously out of touch.

Yeah, poo on Microsoft for being a successful capitalist entity, said the community of people who work for, want to work for, or find a living supporting FAANG or the advertising and VC ecosystem propping it up.

Re: Ask HN: What is the ideal developer experience in 2020?

#43
post #39

You have to be able prototype fast and that’s nodejs + react . For better performance and still fast dev cycle it could be golang. Golang also for anything related to kubernetes rust, c++ For some high performance Python might be good to know just because so many DS things are written in those languages. Scala/java/c# for something robust but verbose e.g. fintech It’s really depends on industry.

I like React, but this is the first time I've heard it described as a fast-prototyping framework.

I believe the Rails guys would be optimizing the SEO and conducting A/B tests by the time I finished deciding whether or not to use a state library.

Re: Ask HN: What is the ideal developer experience in 2020?

#44
I am a very occasional programmer. I maintain several different projects for my business; sometimes not working on them for six months or a year.

I've learned to actively loathe getting started on a new feature for one of my sites. The typical process starts by trying to make a simple change to the codebase, only to learn that some tool needs updating (who knows why), but only after digging around for half an hour trying to figure out why something simple doesn't work. I then try to update the tool, but the update doesn't work, because something else has changed on my dev machine, making the update incompatible. After trying to update everything for a couple of hours, I sometimes manage to get the development environment working again, at which time I actually start coding. Sometimes I just give up and try again in a couple of months.

In the good old days, I would just open a code editor and edit a PHP file, then upload via FTP.

If only it were that simple now. My ideal developer experience would be to simply be able to open my computer and start coding – even if I hadn't worked on a project in a few years.

Re: Ask HN: What is the ideal developer experience in 2020?

#45

I don’t know about you guys, but .NET Core (c#) and Visual Studio along with Blazor on the front end and deploying on Linux is pretty darn cool and highly productive. I haven’t had much success getting as productive on Python, Golang, or Node. Blazor eats TypeScript for lunch. Sometimes people confuse complexity for productivity. You can’t tell me installing 60,000 NPM packages just to have one dependency break is yo…

I strongly believe that .NET Core/C# + VS2019 is easily the best option for productively shipping business features right now.

We also just started working with Blazor in production. There are still some rough edges in my opinion, but the conceptual model is very powerful. We currently use it in a limited internal system w/ server-side hosting model.

I do not think Blazor is an ideal technology for hosting netflix-scale applications, but for those highly-interactive/evented interfaces that you use for various business administration duties and expose to 10-10000 users, it's absolutely perfect. Being able to directly call C# business logic and subscribe to CLR events from your view logic is much more empowering than being forced to suck JSON through a straw, hoping client/server contracts are still lined up, and praying that all your complex XHR/websocket logic is pristine regarding error conditions and retries. Also, absolutely no NPM bullshit is required. I don't even have NodeJS installed on my machine anymore. All the javascript you will ever need can probably fit in a single static file. Our JS blazor interop shim is ~120 lines and it handles some incredibly complex client-side duties (get client rect for positioning elements server-side, subscribing and unsubscribing to events, etc).

Re: Ask HN: What is the ideal developer experience in 2020?

#46
post #38

I often consult other teams in my company on technical issues and architecture. Coming from this background I always wish the following would be covered: - The project should start up with one click or one command. It's fine if I need to configure credentials or something similar, but beyond that, your project should be so easy to start that your mom could do it. If the project requires me to locally install a databa…

For the first point how would you handle software that needs a database of some sort? Or are you saying the project ought to include an install script that handles dependencies?

Not OP, but I've used containers to run temporary local databases for development.

If you're also packaging your application as a container you can use container orchestration tools like `docker-compose` to compile your app and up a local dev environment with all your external dependencies with a single command (eg `docker-compose up`).

Re: Ask HN: What is the ideal developer experience in 2020?

#47
post #38

I often consult other teams in my company on technical issues and architecture. Coming from this background I always wish the following would be covered: - The project should start up with one click or one command. It's fine if I need to configure credentials or something similar, but beyond that, your project should be so easy to start that your mom could do it. If the project requires me to locally install a databa…

For the first point how would you handle software that needs a database of some sort? Or are you saying the project ought to include an install script that handles dependencies?

Ive typically done this with Vagrant (virtual machines) + ansible but docker seems to be the new hotness. However a vm is what i run in prod so keeping docker out is one less tool

Re: Ask HN: What is the ideal developer experience in 2020?

#48
This is a really great question, thanks for starting this discussion!

Based on my experiences, here are some ideas regarding a hypothetical ideal developer environment - some technical, some cultural:

- A supportive and responsive team who help each other to get valuable features developed, deployed and maintained

- Thoughtfully-written test coverage that allows for code evolution, while providing reassurance that changes are correct

- Local, test and production environments where deployed code behaves identically or near-identically

- Languages and API documentation that are accessible, expressive and composable while remaining straightforward to reason about

- Development, deployment and operational tools that lend themselves well to automation so that frustrating and error-prone manual tasks can be reduced

- Rapid notifications regarding problems encountered by users -- ideally only occuring infrequently, thanks to high code quality, and implemented in a user-privacy-preserving way (to avoid developer anxiety regarding imagined or real lack of organizational respect for users)

- Code review (for various social and educational reasons, as well as improvement of code quality)

- Human product feedback, in terms of quality assurance and also genuine user feedback

- A high-motivation and low-pressurization work setting -- with a sense that the delivered software is genuinely providing a net benefit and is able to anticipate and respond to harms and ideally prevent them in future

- The time and team approval to investigate bugs and contribute the discovered fixes upstream outside the organization

It also strikes me while writing this that software may be considered easier and/or more comfortable than other careers.

While it's good to strive to find further improvements, it's worth pushing for other employers (and perhaps industries?) to do the same.

Re: Ask HN: What is the ideal developer experience in 2020?

#49
My latest side project I've been doing on glitch.com using node.js, React Hooks, and theme-ui.

I miss my Vim bindings, and I wasted a little bit of time trying to get HMR to work with parcel, but other than that it really feels like the tools mostly just get out of the way and let me build my idea, and when I'm done coding I think I'll be happy to just leave it on glitch. (I paid for "boosted apps").

Re: Ask HN: What is the ideal developer experience in 2020?

#50
Most answers are about backend/infra etc but i'm going with client side apps and especially Flutter(Dart) + Android Studio. In 30 minutes, tops you have a production-ready environment to develop mobile (and soon web) apps.

- flutter doctor: checks your Flutter installation and shows missing platform dependencies, if any.

- Dart is a very nice statically typed language with a decent standard library.

- Flutter has A LOT of prebuild components for almost everything you need and makes it easy for you to build your own by composing existing ones.

- Built-in code formatting tool (dartfmt) and testing framework

- flutter.dev has everything you need to know in one place.

- pub.dev is a central place for all packages. dartdoc generates beautiful API reference pages for all packages on pub.dev and you can use it on your own packages as well.

- It works on all devices, all android 4.1.x or newer and iPhone.

I think it's the best tool if you want quickly build a nice looking user interface.

Post reply on HN