DEV Community

What software development tools (libraries/frameworks/apps/whatever) make you feel most anxious while you're working with them?

Ben Halpern on January 24, 2020

The reverse of this post... What software development tools (libraries/frameworks/apps/whatever) make you f...
Collapse
 
missamarakay profile image
Amara Graham

Wireshark.

Because at that point, something is VERY wrong.

Collapse
 
phlash profile image
Phil Ashby

Similarly - gdb at assembly level...

Collapse
 
khrome83 profile image
Zane Milakovic

Docker, every time I touch it I feel like I waste so much time. I get it working, but I feel like I could of done better.

Collapse
 
adamkdean profile image
Adam K Dean

Keep going, once you master it, you'll reap the rewards my friend!

Collapse
 
xgrimau profile image
Xavi

Thing is that most of us just deal with docker when we absolutely have to. So you mostly have to relearn it every time '

Thread Thread
 
adamkdean profile image
Adam K Dean

Could you give me some examples of some of the things you have to do? Would be interesting to see it from another's perspective

Collapse
 
jaakidup profile image
Jaaki

Right, I try not to use it unless it's absolutely necessary.

Collapse
 
dfockler profile image
Dan Fockler

Same, the docker developer CLI and I don't particularly jive. Luckily docker is pretty much 'set it and forget it' once you set up a Dockerfile.

Collapse
 
metalmikester profile image
Michel Renaud

I've just lost three days of work because of that thing. Looks like a fourth in the making.

Collapse
 
terabytetiger profile image
Tyler V. (he/him)

Watching someone/working in Production Databases. There's so many easy ways to accidentally bring the system down in a fiery mess. Especially when watching someone that doesn't give off a strong sense that they know what they're doing.

Collapse
 
rudolfolah profile image
Rudolf Olah

Just as anxious-inducing for me is copying a production database to your local development box. If there's private customer data, ugh. (One consulting gig insisted I copy the production database over for local development or connect to it directly and it was a small business so the owners and employees and contractors can lose their livelihoods with one messed up SQL query or ORM command).

Collapse
 
markoshiva profile image
Marko Shiva

Same with me. Well that is a scary situation playing with the production database.

Collapse
 
phlash profile image
Phil Ashby

Heh, that's referred to around my way as 'playing Operation in prod', aka live heart surgery...

Collapse
 
codypearce profile image
Cody Pearce

AWS. The web interface is really complicated and I always worry I'm going to some how rack up a huge bill by doing something wrong.

Collapse
 
wceolin profile image
Will Ceolin

I have a similar fear when using Firebase. The web interface is okay but logging/debugging is really poor. For example, we pay by the number of reads/writes we do to the database.

One day I was setting up a side project and I was getting like 1,000 reads every time I opened up my app. It was freaking hard to debug where those reads were coming from as they don't provide a way to see stats by documents in the database.

I'm always afraid I'm going to do something stupid and end up having a huge bill.

Collapse
 
jaakidup profile image
Jaaki

The way firebase works is that all the debugging should be done on your app's side, unless the problem was with cloud functions.

Collapse
 
leob profile image
leob • Edited

AWS pricing is notoriously complicated and opaque.

I did a price calculation recently, comparing what it would cost to host something on AWS versus Linode, and I was pretty shocked to find that data transfer out was approximately 9 times more expensive per Gigabyte compared to Linode (I'm not affiliated to Linode in any way, although I've been a happy user for a couple of years).

But this is nothing new, I believe that billing being notoriously complex and nontransparent (and expensive compared to competitors) is a known thing with AWS.

Collapse
 
jaakidup profile image
Jaaki

That is the number one reason I decided to go with Google Cloud, as it's easier to use.

Collapse
 
rudolfolah profile image
Rudolf Olah

Anything to do with Android. My first attempt at making an app was about a year or two after Android launched (2009?) I tried again later on and didn't get very far.

And in the last 2 years I've tried to work on an existing app and that went okay except it was 99% React Native/TypeScript (which I already have experience with so I'm not anxious about it, I'm only anxious when people write JavaScript/TypeScript as if it were Java!).

Now I'm trying to give it another go, this time by using Kotlin to cut down on boiler plate.

But it still makes me anxious knowing that the official docs and some books won't have the help I need, it'll be some obscure question on StackOverflow or a random blog that has the answers to my questions about Android.

Collapse
 
cescquintero profile image
Francisco Quintero πŸ‡¨πŸ‡΄

In general, mobile development. It seems soooo cumbersome to setup, tools are like too heavy, too many downloads, so tedious to test(sometimes).

Collapse
 
leob profile image
leob

Apple/iOS is even worse with their complicated Xcode and "iTunes Connect" tooling (which you have to use even when you're creating a mobile app with Cordova). Android tooling is much, much simpler. And with Google you pay USD 25, one time, while Apple makes you pay USD 100 per year (!) for the "privilege" to enrich their App Store with your apps.

Collapse
 
deciduously profile image
Ben Lovy

Vanilla JS. I had a dream about [object Object] once.

Collapse
 
adamkdean profile image
Adam K Dean

Was it the [object Object] of your desire?

Collapse
 
deciduously profile image
Ben Lovy

Uncaught TypeError: desire is not a function

Collapse
 
dpashutskii profile image
Dmitrii Pashutskii

For me "Eloquent JavaScript" and "YDKJS" were huge breakthrough on making up with JS.

Collapse
 
ben profile image
Ben Halpern

I'll say Redux. It's been a while since I used it, and I like the high level concepts, but the amount of verbosity and boilerplate always makes me anxious.

Collapse
 
patryktech profile image
Patryk

I've never used React/Redux, but Vuex is pretty nice. Especially if you use Vuex modules (which e.g. Quasar does by default). Plus Vue.js uses pure JS/ES6 (or Typescript, if you're into that sort of thing), as opposed to JSX.

I never got the appeal of React, tbh.

Also, I rally need to check out xstate - a JS state machine (library?|framework?).

Collapse
 
gyandeeps profile image
Gyandeep Singh

same. If you have typescript then it just so much bloat that you just go crazy. :)

Collapse
 
leob profile image
leob

And the amount of hassle to write 'immutable' code, which can however probably be avoided by pulling in a 3rd party library.

Collapse
 
scrabill profile image
Shannon Crabill

Anything NPM/node related.

It's probably just a permission issue, but I've run into an infinite loop of trying to update one thing, it says I need to update this dependency, but I don't have permission/can't for some odd reason.

I avoid it if I can.

Collapse
 
muttsuri profile image
Muttsuri

I had a permission issue to install elm, I ended up creating a folder in my home directory and change that to be the global one.
Npm actually recommend such an approach (though they recommend npx for global execution, while I just added the folder to path)

Collapse
 
dpashutskii profile image
Dmitrii Pashutskii

Oh, yes! I definitely forgot NPM and overall Node package experience in my list. Huge headache.

Collapse
 
patryktech profile image
Patryk

Windows.

I've been lucky in that I haven't really had to use it since ~2013, and I know my way around it (have basically used all versions from 3.1 to 7), but after using Linux, not having a drop-down terminal, or virtual desktops, or built-in SSH, GNU utilities, etc. means I hate every single minute I have to spend in that garbage bloatware.

P.S. I know, you now have WSL (and even when I used it, you had cygwin), so you can make it somewhat usable, but I'd rather not bother.

Collapse
 
kid_jenius profile image
Daniel

Windows 10 (released 2015) has improved immensely for devs that need bash/terminal/ssh/etc.

WSL literally changed the game. I used to hate Windows because I just want to use terminal (I used Linux, vi, terminal, etc for many years). But then WSL came out with integration in VS Code and it's been a godsend.

I encourage you to grab a Windows 10 device and try it. I guarantee it is light years ahead of Windows 7. You don't have to believe my words, just try it out yourself and form your own opinion.

Collapse
 
patryktech profile image
Patryk

I'm aware. In fact, I mentioned WSL in my P.S.

I encourage you to grab a Windows 10 device and try it. I guarantee it is light years ahead of Windows 7.

Yeah, but is it ahead of Linux?

Thread Thread
 
kid_jenius profile image
Daniel • Edited

For my uses, it's way better than Linux. But that's my situation. Your situation may be different. Regardless, it would be good for you to try the latest builds of Windows 10!

Thread Thread
 
patryktech profile image
Patryk • Edited

Regardless, it would be good for you to try the latest builds of Windows 10!

I focus on web development. I run postgres, nginx, python, docker, sometimes PHP or MySQL...

Seeing as Windows 10 uses up 1.5-2.5 GB RAM idle, and requires a VM when using docker, AFAIK, which wastes clock cycles, it's really not for me.

Use an environment for dev that's as close to what you run in production as possible. If you deploy in docker on the cloud, you're better off just using Linux on your machine, as well.

That said, I'm not opposed to trying it. I just don't have a spare machine or time to waste on that right now.

Collapse
 
pclundaahl profile image
Patrick Charles-Lundaahl

This.

Collapse
 
truex profile image
Andrew Truex

Pretty much every dev tool used in the development of native iOS apps. Even just downloading an open-source app from Github and trying to build and run it is a nightmare. Xcode is probably the most expansive IDE around but makes it difficult to complete even the most basic tasks without having to solve a nondescript compile error in the process.

When I first started programming I had goals of becoming an iOS developer. This was when Swift was still a fledging language which meant that most existing codebases, tutorials, and documentation of the time we're migrating from Objective-C, or worse, using both languages in conjunction. This led to an astounding amount of confusion and frustration. So many errors and warnings telling you to convert to a certain Swift version only to find out that the CocoaPods package that the app depends on isn't compatible.

By far the most anxiety-inducing, ass-backward hurdle to overcome when trying to run an app is the code signing and provisioning process. Without being enrolled in the Apple Developer Program it is monumentally difficult to configure and run an application with any advanced app capabilities. Even with the proper certificates you will more than likely experience issues with the bundle identifier not matching your provisioning profile, certificates being revoked for seemingly no reason at all, and the neverending struggle of code signing apps that you're collaborating on with multiple devs.

What makes all of this worse is the fact that Apple's Developer Documentation is atrocious. The documentation for many of the core concepts needed for programming for iOS has been relegated to the shadow realm aka the documentation archive making it near impossible to find. When you do find what you're looking for, chances are that the page hasn't been updated in years and the information you're seeking is only documented in a release note that you'll never find. Worse even are the topics only explained in a WWDC video causing me to comb through pages of video transcript to find the one instance where someone sheds light on the issue you've been having.

Collapse
 
sansseryph profile image
Kyla

Unfamiliar git commands.

Collapse
 
pabiforbes profile image
Pabi Forbes

Xcode.
Just started with it and it is so confusing.

Collapse
 
defman profile image
Sergey Kislyakov

I didn't do any serious coding in Swift & iOS development, but I've played a little and AppCode worked fine for me. Consider trying it, though I recommend to have XCode opened, because some features are not implemented in AppCode (e.g. visual editing of storyboards, though trying to open it in AppCode actually opens XCode)

Collapse
 
ben profile image
Ben Halpern

Agreed 100%. Apple development is not a calming experience.

Collapse
 
kid_jenius profile image
Daniel

Completely agree. I've been using xcode for some time now and I constantly lose motivation because it is an abhorrent dev tool. I recently tried Xamarin.iOS just so I can keep using Visual Studio and it's been a much better experience.

Collapse
 
rachelsoderberg profile image
Rachel Soderberg

Everything new and unexplored makes me uncomfortable still. My manager mentioned building our next service application using REST instead of SOAP and I immediately felt my hands get clammy.

It'll be fine, and I'll learn a ton, but diving into the unknown is still terrifying.

Collapse
 
_morgan_adams_ profile image
morgana

Rails. I'm learning webdev on my own and Rails has layers upon layers. I have a small project I'm working on and it's taking some time to dig through.

The 2 big things I struggle with are

  1. Learning the never-ending list of conventions and trying to recall how I did X.
  2. Stepping back from my systems/SRE brain that wants to deep dive everything (I got lost in a rabbit hole for several days on webpack, yarn, sprockets, compression, comparisons, pros/cons, benchmarks, etc.)

I counter both of these struggles by trying to do at least one thing daily and picking one or two things to read more about. As with most things, I imagine expertise with rails takes a lot of practice.

Then I spend time working on a kata or two in codewars to improve my ability with Ruby.

Collapse
 
zoltanhalasz profile image
Zoltan Halasz

It's probably Angular. In 2019 I did lots of tutorials and few of small projects, but I still feel anxious with it. Sometimes Visual Studio and C# makes me anxious, even if I work with it on a daily basis.

Collapse
 
_bigblind profile image
Frederik πŸ‘¨β€πŸ’»βž‘οΈπŸŒ Creemers

$ ssh production.vm

Collapse
 
markoshiva profile image
Marko Shiva

Some of the AWS tools that I haven't work a lot with. AWS have very complex structure also their pricing plans are not that clear. So if you nee to use a lot of the AWS technologies and different products in a serious project can't always be sure whether I will not induce some large cost.

Collapse
 
daviddalbusco profile image
David Dal Busco

Having to run cordova build android in a new project or after having updated anything related (like plugins).

It happens often that the related builds end up in error because of some incompatibility.

Don't misunderstand me, Cordova and all open source plugins are just amazing, I'm super grateful such an amazing ecosystem exists specially with so many contributors who do a great job.

But to me, there is always a couple of seconds of uncertainty after having hit enter πŸ˜‰

Collapse
 
kwstannard profile image
Kelly Stannard

Capybara testing because of random failures.

Not sure if this is normal, but Solidus/Spree because you are recommended to customize it via monkeypatch and then you don't know if you are going to break any original functionality. I had a suspicion that it would have been better to fork so that you can run the original tests.

Collapse
 
bauneaustin profile image
Austin Baune

Parcel is also a great tool if looking to stray from webpack. Here's a great article comparing the two: blog.jakoblind.no/parcel-webpack/

Collapse
 
dpashutskii profile image
Dmitrii Pashutskii

Yes, Parcel is amazing. But, most of the modern tools are using Webpack so you'll face it at some point.
I am also still struggling with it.

Collapse
 
_hs_ profile image
HS

Azure, and mainly Microsoft tool except VS Code. Azure caused me so much pain: not creating resources without clear message why, unable to login to VMs, !!!Azure gateway/loadbalancer decoding URL !!! before calling my API so / gets decoded and send to 404, too slow to create stuff, poor handling od network connections lime cutting client from my API in middle of request, or my database connection does not get properly closed on network layer so all driver and frameworks that rely on pooling hang for a long time...

Collapse
 
macargnelutti profile image
Matteo Cargnelutti

React Native + Expo: Even when you know the stack fairly well, the setup is somewhat brittle and can break very easily.

Collapse
 
kid_jenius profile image
Daniel

React Native has a horrible setup experience. The development experience also sucks because you get trapped in dependency hell. I tried react Native, but eventually quit because I was fighting the framework more often than not.

Collapse
 
cescquintero profile image
Francisco Quintero πŸ‡¨πŸ‡΄

Been there. Never cameback

Collapse
 
darksmile92 profile image
Robin Kretzschmar

AWS Lambda functions.

I tried so many times to create a simple lambda function and deploy it via the AWS JS SDK but fail every time I try again.

Either the endpoint is not accessible at the end or I end up messing around with every config that can be configured on the web surface or via the SDK client tool until nothing works anymore :D

Collapse
 
practicingdev profile image
Practicing Developer • Edited

Lately I have been anxious whenever I install a new version of Ruby using ruby-install because it seems to then do a homebrew update of various dependencies, which in turn often breaks various other things (this most recent time, openssl and postgresql)

I am 95% sure I am "doing it wrong" in some way and that I could avoid these issues if I dug into them, but the problem impacts me rarely enough that it hasn't risen to the level of "need to fix it" yet.

More broadly, any time that there is a combination of the following factors, I am in for a worrisome time:

  • I don't understand the tool well
  • The tool has a potential to do (not easily reversible) damage
  • Solutions to any problems caused by tool are not easy to find and/or I do not immediately understand the solutions and apply them blindly.
  • I do not use the tool often, but I also don't have an easy obvious alternative to use which avoids the other risk factors listed above.

As a general rule I really, really, really prefer to understand the tools I use and their potential impact before using them. But because this isn't practical to apply to everything, all the time there are always some things that slip through the cracks from time to time.

Collapse
 
defman profile image
Sergey Kislyakov

You may try rbenv, which does not use brew whatsoever.

Collapse
 
phlash profile image
Phil Ashby

Layered build tooling (esp. home-brewed scripts), or worse: IDE voodoo build tooling - it's usually so fragile, and a PITA to debug when it inevitably b0rks something. Please just use one tool (preferably make!) or at least treat build/software construction as a respected part of the code base :)

In a similar vein: opinionated / platform-conflicting package managers (looking at you PIP!) or poorly managed dependencies in projects: 'You will need to build this library from source' usually makes me shudder.

Collapse
 
jrop profile image
Jonathan Apodaca

Any one of these in isolation makes me relaxed, but all in tandem I feel nervous modifying the pipeline:

TypeScript files => (check with tsc) => transform with Babel => WebPack (with assorted loaders).

Add to the fact that the end result has to work in IE11/Safari and I feel reluctant to make changes.

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

Android Studio and the Android SDK.
It's broken like Javascript for web development was broken was before the book "JavaScript, the good parts". But worse because not everybody is aware of it.

Collapse
 
lkreimann profile image
Lea Reimann πŸ¦„

At the moment it definitely is Kubernetes. I like it when I get things working but mostly I'm just lost :D Hopefully this will change in the near future.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

I got to say anything about mobile development and docker.

Like example adding a hyperlink, checkbox & string manipulation is a pain to do it in Swift. I assumed that it was mature to have it out of box and it is easy to use but I was really wrong.

Collapse
 
kimsean profile image
thedevkim

state management libraries of any frameworks

Collapse
 
jaakidup profile image
Jaaki • Edited

Don't like how AWS works, so I'm using GCloud.

Javascript and the whole npm environment! Scares me when there is a bug because debugging javascript is sometimes like going down a mine-shaft and your torch dies!

I've had countless problems where the bug was in the imported npm package.
So now I try to avoid all the imports as much as I can.
Luckily Typescript fixes many of the issues, wish I started using it earlier.

Collapse
 
adamkdean profile image
Adam K Dean

I once worked with ZooKeeper and it gave me heart palpitations

Collapse
 
valentinogagliardi profile image
Valentino Gagliardi

JAVASCRIPT

Collapse
 
afrozar profile image
Afrozar

JS

Collapse
 
lukegarrigan profile image
Luke Garrigan

GWT

Collapse
 
dfockler profile image
Dan Fockler

Anytime I'm editing a JSON config file I'm like
{ "CONFIG.JSON": "WHYYYYYYY???" }.

Collapse
 
lamda_calculas profile image
Sagnik Chatterjee

Mainly PHP.

Collapse
 
agonxgashi profile image
Agon • Edited

.NET

Collapse
 
kid_jenius profile image
Daniel

.NET Framework was a nightmare for me. I used it for many years, but .NET core feels completely different. The very fact that .NET core is 100% open source and developed in the open makes things so much easier. I can go to their github and see issues created by others (as well as their solutions). It's fantastic.

Collapse
 
bauneaustin profile image
Austin Baune

Ownership in rust. New to rust and trying to wrap my mind around this concept.

Collapse
 
cchacin profile image
Carlos Chacin β˜•πŸ‘½

RxJava πŸ€·β€β™‚

Collapse
 
afrozar profile image
Afrozar
  • Setup a python environnement, when you lunch pip install requirements.

  • Execute database migrations on a production environnent

Collapse
 
ankitbeniwal profile image
Ankit Beniwal

Google Chrome. Although I use it only for testing but whenever I turn that devil on, it just doesn't stop hunting my System's Memory. Nightmares. 😱😱

Collapse
 
kid_jenius profile image
Daniel

I used to use Google Chrome for years, but then the memory hogging started to become a huge problem. Have you tried the new Microsoft Edge (based on Chromium)?? I don't know what black magic the team did, but it uses significantly less memory than Chrome even though it's faster. It also has the same extensions. Plus it has WAY better privacy features (makes sense since Edge doesn't make money from mining user data like Chrome does). New Edge is on Android, iOS, Mac, and Windows. Check it out if you get the chance: microsoft.com/en-us/edge

Collapse
 
nombrekeff profile image
Keff

Ionic, It always gives problems to me when compiling, and it always happens on the deadlines :)

Collapse
 
dpashutskii profile image
Dmitrii Pashutskii • Edited

Probably PHP (as a language and all frameworks I tried) and AngularJS from the things I dropped.
And Webpack from the things I use.

Collapse
 
garraxxi profile image
Orlando Ego

framework7!!!

Collapse
 
dallasgoldswain profile image
Dallas Goldswain

JavaScript frontend libraries.

Collapse
 
pclundaahl profile image
Patrick Charles-Lundaahl

Any time I have to modify a Bash script that's longer than, say, 50 lines. Doubly so if nobody bothered to encapsulate the bits in functions and use local variables.

Collapse
 
andreirusu_ profile image
Andrei Rusu

React, because it’s made by Facebook. Or at least it is maintained there.

Collapse
 
ganonbit profile image
Andrew Reese • Edited

lambda 😬

Collapse
 
mike_hasarms profile image
Mike Healy

Homebrew.

Case in point, yesterday I used it to install Qcachegrind and it broke MySQL.

Collapse
 
mraubreycodes profile image
Aubrey Fletcher

People who create things on production servers, and don't document.... at all!

Collapse
 
loumarven profile image
loumarven

Java, though the last time I had to work with it was in 2014 or 2015. No idea how it has changed since then.