DEV Community

Cover image for My development environment setup (Part 1)

My development environment setup (Part 1)

Jorge Ramón on September 24, 2018

Last week at work I got a new project on .NET Framework. As a good developer I tried to run it on Linux using .NET Core but I failed and my work's ...
Collapse
 
jason_espin profile image
Jason Espin

I still don't understand this idea that Linux somehow has something that Windows doesn't when it comes to development. I develop in multiple languages and have never found the need to use Linux or found Windows lacking in any way so it would be interesting to hear what you think Linux brings to the table that Windows does not as surely a good developer should just be using what they feel most comfortable with?

Collapse
 
thomasjunkos profile image
Thomas Junkツ

My last windows development experience is a bit dated and many things happended - especially WSL happendend. So what I have to tell is cum grano salis. My last experience is from late 2014/early 2015.

I was a Java developer - no problem here. But what made me go away was, that I was a) accustomed to a linux shell (cygwin is no help) and b) part of my toolchain - e.g. git - needed a minimal unixy environment done with MSYS. And the really awkward part started, when you whad severeal MSYS environments on your machine which interfered with one another (+ your cygwin environment) and required you to carefully rewrite the sequence in the $PATH (what should trump what) so to say.

So doing Java everything was fine. But doing additionally scripting in ruby and having somewhere a perl in your cygwin could make your life harder.

My conclusion is:

  • developing C# in windows with Visual Studio (Professional) works like a breeze and has everything to offer, to develop for windows

  • developing Java is nice under windows and linux as well. I experienced no differences

  • using something like ruby (or e.g. python had some known bugs on windows and who cares for that?) in combination with other *nix-centric ecosystems made my life harder as it should be

From my experience, *nix systems were per se developer centric - you could fix your own system, if you leave apple out in this point - and offer a rich integration, which microsoft for years neglected.

Only the last years, they are going to reconquer developer's hearts with WSL.

Collapse
 
mapperr profile image
Michele Perrotta

windows sucks away lots of resources and it have many background services that keep my laptop busy (security center cannot be disabled, cannot switch to manual updates, etc).
With many Linux distros you can have more control over your workstation and more resorces available.

Collapse
 
jason_espin profile image
Jason Espin

I can only see this as a problem if your machine isn't up for the task in the first place. Again, I've never had any issues with Windows.

Thread Thread
 
mapperr profile image
Michele Perrotta

Well, yeah, if you are filthy rich and can afford a filthy powerful machine, then you can even use a virtualized MacOS xD.
Jokes apart, you are right, but in my case I have to do very different types of work on my machine: python development, nodejs, frontend, spin up virtual machines, use containers, etc, so I always felt I need as many resources as possible from my laptop. For instance, I think disk usage is an issue with windows. I'm developing a xamarin app, and visualstudio+xamarin take gigas and gigas of disk space (it's not the OS, though, maybe I am a little OT :). Ever felt this way?

Collapse
 
sangram profile image
Sangram

You can disable those by booting windows in safe mode

Collapse
 
selectiveduplicate profile image
Abu Sakib

Okay pardon my newbie and dumb question, but can I run bash scripts(.sh) using Zsh?

And also, and this is just my opinion, have you given Ubuntu MATE a try? I prefer it above all Ubuntu flavors... specially the flagship Ubuntu that now comes with GNOME Shell...

Lastly, yeah, fucking Windows...

Collapse
 
jorge_rockr profile image
Jorge Ramón

There aren't dumb questions :) Feel free to ask.

Yes, you can run bash scripts because zsh is just an extension.

And no, I haven't tried Ubuntu Mate yet, maybe I should give a try at home's computer :D

Collapse
 
roshan092 profile image
roshan092

“There arent dumb questions”. Try this on stackoverflow and you would wish u didn’t exist 😜

Collapse
 
mackenza profile image
Andrew MacKenzie

I am mostly with you. I jave a few variations on your setup though.

I prefer Neovim to vim
I prefer Prezto to oh-my-zsh

In terms of Windows, what I always found lacking was a decent terminal and shell. Those are different things.

For terminal, I now use ConEmu (and wsltty sometimes) and love it... A lot.

For shell, cmd is too different from *nix shells to be useful to me. And I have never been comfortable with PowerShell, though I wish I was as it's very powerful. For me it comes down to growing up using Unix command line and finding that to use Windows, my knowledge only makes me better on Windows... but learn *nix shell scripting and you can use that anywhere.

Collapse
 
defman profile image
Sergey Kislyakov

The bad thing is that you need to restart your computer

Re-opening your terminal would be enough.

Collapse
 
jorge_rockr profile image
Jorge Ramón

I tried but no luck hahaha. Restarting worked, I dont know why.

Collapse
 
taq profile image
Eustáquio Rangel

You don't need to restart. Just open your regular terminal/shell and type zsh and your current shell will be replaced by it. If you want to start to use it without this workaround, you can close your current user session and open it again, after you changed your shell configs.

Collapse
 
marcmdev profile image
Marcelo Miranda

I wanted to start using VIM but it feels like it's too hardcore for me, I'm just a beginner, Although I've thought about forcing myself to use it

Collapse
 
jorge_rockr profile image
Jorge Ramón

In my next post I will cover the commands I use day-to-day. So don't worry, I know it's hard, but with this setup made it easier

Collapse
 
roshan092 profile image
roshan092

Use whatever u r comfortable with, although it s a must to know basic vim commands. Is handy when u need to log in to linux servers for basic dev tasks

Collapse
 
vancanhuit profile image
Đinh Văn Cảnh

I usually use neovim instead vim on Ubuntu.

Collapse
 
hoelzro profile image
Rob Hoelz

Out of curiosity, what drives you to Neovim instead of Vim Classic?

Collapse
 
vancanhuit profile image
Đinh Văn Cảnh

You can read more here.
Roadmap: Roadmap

In essence, neovim provides many common default settings for you. It is a refactor of traditional vim, keep good parts of vim and also an effort to make vim more productive.

Collapse
 
eljayadobe profile image
Eljay-Adobe

Sorry that Windows blue-screened on you, Jorge. Glad you were able to channel your anger into something constructive (i.e., this post).

Windows is a very good development environment. Especially if you are all-in on the Windows way of developing.

If you have not drank the Windows flavor-ade, you can still go a long way using WSL, or Cygwin, or even SFU (although I think WSL supersedes SFU, but not everyone is on Windows 10). One foot in each world. Of those, my personal preference is Cygwin.

There is a native (GUI) Windows build of Vim. (Just as there is a native build of Vim for Mac, called... MacVim.)

For doing .NET development, Visual Studio is hard to beat. If you are doing Mono development on an non-Windows platform, Visual Studio (formerly Xamarin) for that non-Windows platforms is highly recommended. I did all my F# coding for Mono on a Macintosh, without a hitch. Only thing lacking was WPF, since WPF is tightly coupled to DirectX — probably why Microsoft hasn't open-sourced WPF as they've done with so many other .NET technologies. (Open-source kudos to Microsoft under the Satya leadership era!)

Code on!

Collapse
 
d1p profile image
Debashis Dip

You don't need to restart the computer, however you have to logout and login again.
Cheers on the setup.

Collapse
 
equiman profile image
Camilo Martinez • Edited

I can't believe it when Microsoft launch .Net Core and say that can runs in Windows, Linux and Mac.

I decided migrate my bash/bat scripts and test in a console application and it's fucking true.

Now with vscode and .Net Core no matters the OS that you choose as developer.

In past years I worked with Windows, Linux and now with MacOS... and learn that all have problems and BSD (freezes and restarts). Even need formated time to time, all of them.

Collapse
 
lukemikael profile image
mile zero

Remap capslock to esc and vice versa :)

Collapse
 
marcmdev profile image
Marcelo Miranda

VSCode is killing it smoothly, I'm loving the array of extensions it has

Collapse
 
p0k8_ profile image
Parwat Kunwar

If you love zsh shell and emoji's with fish icon.

You will love this zsh theme

github.com/parwat08/random-emoji-r...

Collapse
 
maxdevjs profile image
maxdevjs

Very good :D