OpenSourceDPS909

Strange Vscode {Open Issue}

For my open source class, we were given a pretty interesting task. The task was to find a beginner-friendly open issue in Vscode’s library.  So, I decided to look at this open issue link. I found this issue very strange; the detail of the issue is that when we try to make a search for a text by including a specific folder name that we want to look into, we get a bad result if the specified folder name is wrapped within curly braces “{}”. For Instance, one would create a directory like so “{dir_name}” and add a text file(hello.txt) containing “hello” in it.

I was baffled by this because I have never heard or seen anyone create a directory with such format. Below is an image of the steps and error result.

05976918-bc6a-11e6-98c0-c7a94dac6f7f

Maybe they have a specific use case that requires them to create directories with such format. However, is it really a Vscode bug?  Anyhow, I still decided to have a look a the base code to find out where it is being parsed. Unfortunately, I was unable to find the module yet because there was so many service module that I just got lost. I will try to give it another shot maybe next week.

OpenSourceDPS909

Functional Programming For The Web!? No Javascript!?

Since the beginning of my journey of learning how to build software in college, I felt that the only possible way that one could build a nice dynamic website was by writing some Javascript code. However,  about 2-3 years ago I discovered Elm! Then, I believe the following year from discovering Elm I stumbled upon Purescript.

Elm_logo.svgELM is a purely functional programming language for developing web applications. Elm compiles to javascript, therefore, most of the things that you can do in javascript can be done directly with elm. Unfortunately, building backend server is not possible with elm.

 

 

 

purescript_logo

Purescript is another purely functional programming language. Similar to Elm it compiles to javascript as well. Purescript is a bit more powerful than elm it offers library for developing web servers and offers more polymorphism. The downside compared to Elm is that the learning curve is quite steep.

 

Now, I would like to continue by mentioning an important aspect of these two platforms. Elm and Purescript are both built in Haskell! I have been developing a few things in Haskell for the past 6 months, and I noticed that a lot of people would ask me “whats built in Haskell?” or “I can’t see where I would use Haskell …”.

I have tried both platforms but absolutely prefer Elm over Purescript(It doesn’t mean that Elm is better!!). I find that elm is way more beginner friendly and I would consider it maybe a nice introduction to Haskell.

I faced a small issue when developing with Elm and Haskell. I noticed that I was stuck with a non-isomorphic application.  An isomorphic application is simply an application whose code runs both on server and client side. Since I was using a library named Servant as my backend, I was able to pair it with another library that could convert my Haskell Data Structures to Elms so I would not have to recopy the same Data structures (DRY right!). However, I still did not quite feel pleased with it – nonetheless great option! But, a beautiful Haskell library called Reflex rose from the darkness to my rescue! Reflex is a Practical Functional Reactive Programming library. There is still development being done as we speak but there are still a few people using it in production! 🙂 Reflex deserves a blog of its own so I will end my first blog with this, thanks for reading!