The Reason why I choose Scala for BtoB business

Hi, everyone. This is Omiya, lonley engineer at mate.Inc,.
This time, we want to celebrate the beginning of mate TECH BLOG.

I was assigned to be a leader of developing team of Scala, Play Framework, and Akka.

I will write what I learned and what I had hard time on and solutions to it on this blog. It is expected to learn by myself most of the time, so I will be creative taking advantage of this opportunity.I hope this blog helps you to understand the engineer’s life and the story behind it, not only about the languages… but please expected to be mostly about the programming language.

About our new service, ENishi

Now, For ENishi, our new membership-based web service, I will develop new functions as follow.

  • Chat Function
  • Function Connecting members like “FRIEND” of Facebook
  • Appealing Board Function
  • I thought the hardest thing is on developing chatting function. That is just because it needs  a large amount of database loading and real-time communications. And what a pressure…this function is the most important function for this service.

    Then for selecting programming language for ENishi Application, I decide based on “What is the most useful when developing Chatting system”. It is nature of programming to consider the hardest thing first…and then everything else will…just…yeah, I can handle it somehow…

    If the programming language does not support WEB SOCKET, it will not work. Well…but almost all of the programming language supported it.

    Well…as I mentioned, there is no other engineers beside me…considering that I have nobody to talk about it…I talked to the team. They said, “The programming language you are familiar with is good enough, right??”

    Umm…well…and I only had 4 months to release the service. I needed to decide now to be on time.This theory leads to…

    I was most familiar with it throughout my engineer life. I like this language, but it seems to be out of trend and not compatible for this project.

    Actually, I have been changing programming language every 6 months depending on which project I get involved with. I did not care about the time needed for learning, money…and etc…I was so used to change programming languages.

    Well…just ignore my experience and think my experience as useless… And I started to do research on what is the best language for “DEVELOPING CHATTING FUNCTION”.
    Then, SCALA came up.

    First Contact with new programming language SCALA

    “Scala had many introduction results. For example, for Twitter, LinkedIn, CyberAgent, GREE”.

    Most of the chatting functions are made using scala. I was introduced to SCALA by the we article…from then… I could not forget about SCALA. I need to use Scala!!!!!!!!!!!!!! I kept searching for another programming languages that is suitable for chatting system, but nothing was better compare to SCALA.

  • PHP…Our other service use it. But it leads Spaghetti Code and is not good for maintenance. It was used in my former office. But program made using it processed very slowly.
  • Hack…There was the reputation that it is faster than PHP. But it was newest language and it made me anxious about support and the amount of information.
  • Python…It was not bad, but it was also not good. Node.js…I don’t like javascript because it leads Spaghetti Code and is annoying to debug.
  • Finally, Python, Node.js, and Scala remain in the candidates. But my first impression on Scala was good and the first impression made me decide. And Scala has much superiority as follows;

    1.Superiority For Rapid Real-Time data exchange.
     Play Framework has standard support for WebSocket.

    2.It is good for serviceability and maintenance, because we can write simple source code by Scala.

  •  ex) filter, case class, map, pattern matching, need not semicolon.
  • Scala is in third place of execution speed. (First is C, Second is Java)
  • It supports Java Library.
  • Slick seemed useful.
  • Using eclipse for scala developing seemed efficient because of the code arranging function and detecting compile error function.
  • The company that can use Scala is paid attention to. If we are possible to use, we will be.
  • Scala had many supplied records for big IT company.
  • I was the only engineer in mate. And I pushed Scala. Finally it was decided. Now I was introduced to Scala officially.

    We had a concern about learning cost, developing with minor language etc… But after all, my intuition won.

    We also got permission from the outside experts of Web Service. It was decided officially to programming language for ENishi.

    It was not possible to do the same if I was in a large company.

    So now I am developing using Scala, that was decided by myself!!! It is my Pleasure to be responsible for making decisions. I also have pressure, but it is enjoyable.

    In this company, each of us needs to be responsible for lots of things. If you enjoy it, you will love this company. Other things, You will come and see!

    Shall we learn Scala together??

    What I feel being in this company is…RESOURCES! We really needs resources!

    I cannot find Scala Engineers…

    I asked many people but it seems like people who are using Scala is very little…Maybe they will go to big companies…

    There are only one months left until the release of ENishi but there are nobody who can help me. And there are many many functions we want to develop after releasing.

    Anyone who wants to help me are welcomed at this company!

    And in front-end, we are using javascript. If you are confident using it, you can probably use Scala too. Of course if you have experience on server engineering or Scala developing, there will be a lot that you can help!! Join us! We are waiting for you!

    → Please see the career at mate

    Well…at the end, I didn’t like the UI of eclipse and now I am using SublimeText…oh well..