14 ms·
Re-writing the site of Norway's largest transport provider in Elm
- imedadel 7y agoSomething (weird) that I noticed in many Scandinavian websites is their short domain names. I don't know the reason, but I like the fact that you can type 5 letters and access the service that you want.
- elektronaut 7y agoFor .no, I reckon it's a combination of small population and the fact that you need to be a citizen to buy one. Until recently, they were only available to organizations. There's also restrictions on the number of registered domains you can have (100 for organizations, 5 for individuals), that limits squatting somewhat.
- kaivi 7y agoYou made me wonder -- what happened to ulv.no and sau.no?
- hdfbdtbcdg 7y agoProbably too politically divisive. Nothing gets Norwegians arguing more than wolf politics.
- kaivi 7y agoWe should control greenhouse emissions by releasing more wolves into shopping malls.
- atomwaffel 7y ago> the fact that you need to be a citizen to buy one Small nitpick, but you need to be a Norwegian resident with an ID number (fødselsnummer) and a postal address in Norway, not necessarily a citizen.
- Eyght 7y agoIn Sweden, many sites have made use of the .nu domain ('nu' means 'now' in swedish) which has led to a lot of short domain names.
- dmix 7y agoThe website listed two agency names "Norsk Lokomotivmannsforbund and Norsk Jernbaneforbund" (in the strike notification). I could imagine acronyms just make more sense if long words like that are common in the country.
- tyfon 7y agoThey are compound words similar to what you can do in German and other Germanic languages with the exception of English. "Lokomotivmannsforbund" = "train engineers union" :) We also commonly make up compound words on the fly making it very hard to use things like swiftkey without typing the two words and then removing the space as they are in no word list.
- legulere 7y agoTrain engineers union also is a compound word. The only thing different about English is that it usually writes the compounds separated.
- vlangber 7y agoI wonder how involved the customer was in the choice of technology. I think the long term costs of choosing Elm will be higher than any perceived gain during the initial development period. The number of developers with Elm experience in Norway is small, and I think it will make it harder to attract good consultants that want to work on it.
- Skinney 7y agoThe customer was involved from the very beginning. Everything we do at Vy is done in close collaboration with the customer. Our experience is that previous Elm experience isn't necessary, as the language is very easy to learn, and people get productive very quickly.
- vlangber 7y agoI don't doubt that you can learn Elm quickly. But how many good developers want to use what might be an obscure technology in a few years. From the Study of Programming Languages Not to Learn in 2019: "the five languages not to learn in 2019 are Elm, CoffeeScript, Erlang, Lua, and Perl."
- l0lpalme 7y agoThe availability of developers is definitely something that should be considered when choosing technology. That said, NoRedInk, one of the companies earliest in adopting Elm have said they have had an easier time of hiring after they change to Elm from React. They are at least an indication of the opposite of what you are suggesting. Also in Study of Programming Languages Not to Learn in 2019: "As a final word, we wanted to reiterate that while the languages that didn’t perform well this year are useful and powerful in their respective fields, they may not have ranked as highly on our list because of the three metrics we chose. Therefore, if you really want to learn Erlang, Elm, or Lua, go for it — after all, these languages may make a comeback by 2020 because of your interest in them!" I think one has to take the result in that article with a grain of salt as they only look at a very limiting set of metrics. Also in the specific case of Elm I would recommend that people give it a try as it is a very different programming language than the most common languages and a great intro to the realm of strongly typed functional languages and functional thinking in general. Even if you don't end up liking or using it, it is a good thing to have experienced. There is always something to learn from learning new programming languages! ^^,
- bgorman 7y agoAn alternative worth considering to Elm is Bucklescript with the bucklescript-tea library. This project gives you a more powerful, but similar language (Ocaml/Reason) with a more direct interop mechanism than Elm ports.
- mhd 7y agoSo no non-Javascript fallback for a quite important site & service?
- jimbo1qaz 7y agohttps://www.vy.no/en https://www.vy.no/en does not load on Firefox, with Javascript disabled in uBlock Origin, or Developer Tools.
- fuj 7y agoSo you intentionally disable a crucial component of the browser which has been around for 20+ years and you are surprised the website does not work without it
- amedvednikov 7y agoWelcome to post 2010 :)
- anthony_doan 7y agoYeah I do find it super weird that people do this. I think front end rendering is well suited for internal tools or tools that you must login (gmail, google docs, etc..). Anything that is front facing and/or require SEO shouldn't be frontend rendering javascript unless you can afford a fallback with it.
- Skinney 7y agoIt's really not that wierd. This is the first time I've seen anyone mention the lack of non-javascript support, or mention that the site doesn't work because of it.
- ggregoire 7y ago> A common misconception is that it is risky to use a non-mainstream language, since it will then be difficult to find developers with the right experience. We have found, however, that we don’t need people to know Elm beforehand. Are there a lot of people who actually want to use Elm tho? Seems like the real risk to me, not finding anyone interested in learning and using Elm.
- _greim_ 7y agoFrom the POV of someone hiring, there's a sort of geek-magnet effect that kicks in if you start hiring for something like Elm. You get the kind of people who like learning new things, who would otherwise completely ignore yet another React or Angular dev job listing.
- mnsc 7y ago> people who like learning new things Problem is that also attracts those where new technologies is not a mean but the end goal. So when they start to get productive in the "new technology" (that's now "one year old, ugh") and if the shop ain't up to the task of rewriting everything every year those people move on to the next hype baby [1]. Being a geek-magnet should be a very minor and explicitly stated short-term factor in deciding what tools and technologies to use. [1] Yes, this is anecdotal and based on one former colleague!
- cpursley 7y agoAre you kidding? Pick me, pick me. Elm is by far the best experience that I've had with any language.
- papln 7y agoA lot of people actually want to get paid. They don't avoid paying jobs because the langauge is new to them, unless... someone else knows the language better and gets hired, which is not a problem for the employer.
- _greim_ 7y ago> To test out the latter, in the summer of 2017 we tasked a team of summer interns with the renewal of our seat map application, a crucial component of the ticket booking process. They were to use Elm, a language they had no prior experience with. To our surprise they took to the language very easily, and their work turned out great. I think programmers—myself included—tend to be surprised by these stories, because we envision two learning curves: general programming concepts, plus the additional weirdness of learning Elm. But "general programming concepts" unpacks into: A) valuable stuff everyone needs to learn anyway, B) a bunch of hard-bought mental discipline which Elm makes obsolete, due to its lack of side effects and mutable state. Going cold-turkey into Elm, newcomers fast-forward through a lot of things JS learners for example have to wrestle through. [edit for clarity]
- caspervonb 7y agoHmm, personal preference but preferred the old NSB site. This takes forever to load.
- deleted 7y ago[deleted]
- roschdal 7y agoIn my opinion, this is a case where a supplier (IT consultant company: Bekk) uses a non-standard unpopular technology, to implement a technical solution, for a customer who is state owned and has almost monopoly (Vy/Norwegian Railways). I suspect, the reason for this choice, is to lock the vendor in. For the customers of Norwegian railways, the results is a more expensive train journey.
- FredrikMeyer 7y agoRail ticket prices are decided at the government level in Norway, so this should have quite a minimal effect on those. Also, as learning Elm is quite fast - I don't think the vendor lock-in is a very convincing argument.
- cstpdk 7y agoWhat's your evidence that train journeys have gotten more expensive in Norway due to this? FWIW i am Danish and almost all of our public IT projects are done in .NET, almost always the reasoning is "more developers, more mainstream, less lock-in". Our IT projects are always hilariously belated and more expensive than budgeted. More often than not the same contractor (one of 5ish big corporations) keeps getting the same contracts from the same departments because they have pre-existing knowledge of the system they previously built (hint: this is lock-in). Now, the last part is changing somewhat due to EU tender rules, which I think Norway also abides by (they are not in EU, but are committed to complying with most EU laws)
- arcturus17 7y agoIsn't being locked to one of five big vendors that do .NET a bit better than being locked to the vendor that does Elm, though?
- arcturus17 7y agoThe vendor lock-in is a good point... Isn't this risky for the customer? What do they gain over, say, a well-crafted React-TS SSR app, or Django or what have you? Do they really get an end-product that is so much more reliable? Is this cheaper or more efficient? What happens if there is a political fallout between the consultant and the customer, or if the customer can no longer afford them?
- kfk 7y agoI work mostly in Python for data analytics but I like to play with front end from time to time. So I tried elm. I loved learning about the elm architecture and the concepts of a ml type of language. But the community and the principles of it threw me off. I need a simple parser and found this https://package.elm-lang.org/packages/elm-tools/parser/latest/ https://package.elm-lang.org/packages/elm-tools/parser/lates... I guess if you have a CS degree you can understand how that parser works, I couldn’t. The community tried to help me on the forums but you are supposed to know a lot of key functional concepts to even understand their answers. Then I learned about how they decided to throw away Javascript interops. I mean I love benevolent dictators but this was too much. Just fyi their benevolent dictator thinks if you need a library you should program it yourself. I can see his point but in Python word there are so many amazing libraries. That principle sounds good in theory but it’s theory, the rest or the world thrives with libraries. However I became a better programmer thanks to elm. I would love for something like ocaml to pick up more steam in data analytics. I think though python won that battle for good principles (easy to use) and not for being functional, or controlling side effects or having less bugs. If you think about it that’s exactly why Excel is still so popular, it’s a monster but it’s easy to use.
- DavidTNcl 7y agoBecause I do have a CS degree and can program in several functional languages I can glance at your link and see how that parser works. Mind you, you're right re the BDFL stuff. FT.
- kccqzy 7y ago> I need a simple parser and found this https://package.elm-lang.org/packages/elm-tools/parser/latest/ https://package.elm-lang.org/packages/elm-tools/parser/lates... > I guess if you have a CS degree you can understand how that parser works, I couldn’t. The community tried to help me on the forums but you are supposed to know a lot of key functional concepts to even understand their answers. Have you tried writing a simple parser (i.e. just recursive descent) yourself in another language like Python? If so, you'll find the approach of using parser combinators in your Elm example rather superior. If you do not currently understand the foundational concepts of writing a parser, perhaps you should understand them before starting to write a parser. Or perhaps consider this. Can you get by without writing a parser? If the grammar you're trying to parse is well-known you might find an existing parser; if the grammar is extremely simple you might just use a few string manipulation functions to get the job done.
- adreamingsoul 7y agoIs the mobile Vy application also using Elm? I live in Oslo and use Vy to travel outside the city. I find the overall experience to be excellent, and appreciate the friendly and simple interface.
- winrid 7y agoTried to use latest Elm with Websockets. It's just not ready yet but I look forward to when it is.
- IfOnlyYouKnew 7y agoI was frustrated by that as well. In the end, I actually found a solution that was surprisingly easy and works well. I'm about 90% sure it was https://github.com/billstclair/elm-websocket-client https://github.com/billstclair/elm-websocket-client, although it's been a few weeks and I can't check right now.