Hjertnes.blog

#

March 08, 2018

another one?

#

March 08, 2018

Now?

#

March 08, 2018

I’m going to give Safari a try as my default browser for a while. Chrome is a little bit weird at the moment, Firefox is fine, but the memory usage is ridiculous and it looks like shit.

Programming languages in 2018

March 08, 2018

What are the programming languages I’m interested in, or are using in

1.

The ones I know and are using regularly, if not daily are: Python, Swift, JavaScript, C#, SQL, LISP and Shell scripting.

Python, Node and C# are my go to languages when I’m going to write a backend. What I’m going with depends on a number of factors. But I mostly go with Python and Django for personal stuff, because I know it so well and I think it is a lot of fun to work with. I often go with Node if I’m going to write something small and single purpose, because of how small and fast it is. And I think C# and .NET Core is a great option when you want the safety of a strong type system.

For basic scripting my go to tools bare shell scripting and Python. I use plain shell scripting when I just want to build an abstraction for some complex commands or series of commands, and I got with Python for anything more complex.

I’m digging more and more into Swift as I’m getting serious about native App Development again. I like it a lot. And I enjoy it way more than I ever did with Objective-C. The strong type system makes it a lot easier to catch stuff under development time. But I’m not a huge fan of Xcode.

Knowing how to use plain SQL is the smartest thing I ever did. It was the second real programming thing I learnt, after PHP. It is a fantastic tool to have in your tool belt for when you need to run plain sql to fix stuff, read stuff straight out of the database or to clean stuff up. Or even if you don’t want to introduce a ORM to your project.

LISP. I have developed a real interest in LISP and Scheme over the last year and a half. And I love how elegant and fun it is. I use it all the time to extend Emacs / Spacemacs.

Javascript. I still enjoy using JavaScript, especially on the front end. I think Javascript is the perfect language for anything user interface. But I think we need a “Django moment” or “Ruby on Rails moment” for it to really take off on the backend.

What are the languages I’m going to look into in 2018:

  • ReasonML. I’m going to play around with this on some small front end projects. And I might introduce it at work if I like what I see.

  • LISP. I’m probably going to play a lot more with emacs lisp and chicken scheme. Because the elegance is too much fun

  • If I find the time I’m also going to take a look at GoLang

#

March 07, 2018

I fucking hate working form home when there are other people here.

#

March 07, 2018

Editing files with Emacs and Tramp over SSH is freaking awesome. Where have this been my whole life?

Merged Hjertnes.blog and JStips.blog

March 07, 2018

I started jstips.blog in November(I think) to challenge myself to write a lot about JavaScript. But I started to get frustrated with the limits I put on myself. So I had the choice between either extending the scope of the site to development in general or to merge it with this site. I went with the latter. But I’m going to continue with the main challenge I put on myself. I’m going to post something every single day.

#

March 06, 2018

I’ve changed the Overcast playback settings back to 1x, after using the max playback speeds for years.

Why? I’m trying to be more intentional on what I do and how I do it this year.

Fast development versus reliability

March 06, 2018

When you choose what programming languages to use for your project you should take in to consideration if developer productivity or reliability is more important.

For example if I develop the backend in Python and Django I’m much more productive, but if I use a programming language such as Java or C# I get a much stronger type system, which are catching more potential problems during compile time (if you are using it correct).

Having a strong type system can help you a lot, which means that it helps you to make sure that you don’t add a number to a string variable. But that means that you need to use more time declaring what type a variable has. But on the other side you often have to add more code to make sure that your data structures have the correct content in dynamic languages like Python.

And having a strong type system is also very helpful when you refactor code.

On the other hand, languages like Python often requires far less code than C# does.

It doesn’t matter that much on the end result, but my experience is that having solid automated tests are very important when you use dynamic languages. And I think there are something very comforting about letting the compiler doing the first round of validation.

This is by the way one of the big advantages of using Swift instead of Objective C.