Live data from Hacker News

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

news.ycombinator.com

51–60 of 92 posts

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

#51

"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 h…

Most people who rethink for first principles actually reinvent the wheel. Once in a while, someone doesn't, and they change the world. It's worth the exercise, even if the odds of success are rather low.

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

#52
post #32

It has been a long time since I've done any web development, but I've done almost everything else, and I've converged on preferring C# in Visual Studio. Why? - typechecked, but the types get out of the way; "var" and intellisense fill them in for you. It also shows you what types the function arguments should be and autosuggests objects of those types - functional when you want, but not when you don't: LINQ et al, in…

[deleted]

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

#53
post #32

It has been a long time since I've done any web development, but I've done almost everything else, and I've converged on preferring C# in Visual Studio. Why? - typechecked, but the types get out of the way; "var" and intellisense fill them in for you. It also shows you what types the function arguments should be and autosuggests objects of those types - functional when you want, but not when you don't: LINQ et al, in…

> Language interoperability is another: it's still astonishingly hard to combine languages within a single software artefact unless they're C and C++ or similar things that produce platform-native binaries.

Earlier, you mentioned F#. How easy is it to combine C# and F#?

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

#54
post #32

It has been a long time since I've done any web development, but I've done almost everything else, and I've converged on preferring C# in Visual Studio. Why? - typechecked, but the types get out of the way; "var" and intellisense fill them in for you. It also shows you what types the function arguments should be and autosuggests objects of those types - functional when you want, but not when you don't: LINQ et al, in…

> Language interoperability is another: it's still astonishingly hard to combine languages within a single software artefact unless they're C and C++ or similar things that produce platform-native binaries. Earlier, you mentioned F#. How easy is it to combine C# and F#?

The internet has plenty of examples: https://connelhooley.uk/blog/2017/04/30/f-sharp-to-c-sharp

(I've not actually done it myself, writing functional-style C# is enough for me)

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

#55

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…

One project I've recently come across that illustrate a lot of what you're talking about is the Reaction e-Commerce framework: https://reactioncommerce.com/

The thing is so over-engineered that they had to do a makefile that clones the project for you. And I don't know what they're doing, but the thing is unusable on a Mac (it's supposedly related to filesystem operations in Docker -- why are you doing so many?).

I could go on and on. I spent 2 days trying to make this work properly, but in the end I decided that if I need to do a Web store, I'll go with something else.

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

#56
Applies to any development environment: A fast development environment with a _properly_ configured anti-malware solution (so not a malware solution that scans on every file _access_ and a slow one at that: Symantec Endpoint Protection). Obviously a fast computer which does not clock the CPU down under load.

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

#58
Project install should be one command. That's probably going to mean a script. Local setup options should be handled by either taking a config (with an example provided) or interactively. This doesn't count the commands to download the archive/clone the repo/etc, but that should be one step anyway.

Building, both artifacts and tests, should be single commands. That might mean you need to write a script that does the "cd into a directory, cmake .., make, make install" dance, but it should be handled.

Dependencies should work, should not conflict with system dependencies, and should be fetched if not already present. Hi Python!

Good IDE support: IntelliJ has some great features, I'd like to use their stuff. But some people want to use other IDEs or editors. Maintain project files for common ones.

Self-contained PRs. Keeping PRs small is all well and good, but having PR A depend on PR B and C and D getting merged in the right order makes review much harder than if they were all just stuck in one.

Must work on Linux, Windows and Mac, at least. Preferably also some BSDs.

Documentation, with all of the following: An introduction saying what your project does, tutorials on how to do intended tasks, how-to guides on solving detailed issues, explanations with examples of how things are used, and a comprehensive reference of what can be done. Divio has a good article[1] about this, though it misses the need for an introduction while providing one itself.

Strong types, with good type inference. Dynamic typing is nice for scripts, but not for full-on programming.

Good safety around memory issues. GC or Rust-style ownership based will depend on application, of course.

Interoperability with different languages. Especially an issue is building multi-language projects.

As an embedded dev, the hardware should be debuggable. Provide a damn JTAG or SWD port. Provide a GDB server or OpenOCD plugin. Provide test points, and a dev board with a damn schematic!

Have your datasheet actually describe the function of the chip and how to communicate with it. LTC (now owned by Analog Devices) datasheets tend to be great examples, try to be like LTC/AD. For example, see the LTC4015 datasheet[2]. It provides example application circuits, clear pin configurations, detailed typical performance info, a nice detailed block diagram, I2C protocol info (because that's chip specific), functional descriptive text, equations to calculate the needed supporting component values, operational state flow charts, detailed component selection procedures, PCB layout considerations, a full register map, and a recommended solder pad layout. Too many datasheets lack too much of this info.

[1] https://documentation.divio.com/ [2] https://www.analog.com/media/en/technical-documentation/data...

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

#59

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…

> If the project requires me to locally install a database, configure ports, or anything of the like, that's a shining red flag that things are very wrong I disagree here slightly. I think it's reasonable that a database setup may be necessary, especially if abstraction layers (ie. ORMs) aren't being used for SQL, and SQLite is not your database of choice. Sure, you could set up docker , but not every project adopts…

Perhaps the point here is that it shouldn't be necessary to separately configure a database from the command used to fire up the project. For example using Docker w/ docker-compose, a single command should be able to get most projects up and running with all of the required system dependencies included (database, etc).

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

#60

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 totally agree with you, but production deployments are terrible. The confusing way to handle secrets and environment variables, the lack of a standard database migration tool that is not tied to EF, the lack of a good standard integration layer with nginx... it's just a pain if you don't have a dedicated devops team.

Yeah that’s always been the big weakness in my experience. MS does offer a great developer experience but the deployment experience is still a long way behind Java and Go. Slowly moving in the right direction but windows containers are still a 2nd class citizen for example.
Post reply on HN