Recent submissions

Comment · 9 years ago
Use a simpler hosting provider if you're not already familiar with AWS. Power brings complexity, and your product likely won't benefit from solving infrastructure problems you don't have (yet).

That said, once your product outgrows simpler infrastructure I'd wholeheartedly recommend AWS. For the past few years I've been using AWS for my day job and side projects. Prices are competitive, and once you're past the learning curve, you'll have a great deal of flexibility.

Comment · 9 years ago
Thank you for the encouragement
Comment · 9 years ago
Students who start by learning Java will learn solid principals which may be applied to Javascript (or any other language).

Students who start by learning Javascript won't learn solid principals.

Comment · 9 years ago
I would recommend starting with SBT templates, and I second the recommendation of Scala for the Impatient.

We began working with Scala very slowly, only using it for small internal projects until we were more familiar with the language and stack.

We also avoided heading too deep into category theory territory in the beginning. Libraries like Cats and Scalaz are not allowed (currently).

Comment · 9 years ago
We're starting to develop greenfield APIs in Scala (with Play) rather than PHP (with Laravel) and we've noticed new developers without experience in either language have a surprisingly similar time-to-productivity. Here are some major factors:

PHP's dynamic typing combined with Laravel's magical approach makes discoverability hard. A developer can't trace through a request by starting from a controller method and navigating through a codepaths with the support of their IDE. Our application code uses typehints almost exclusively, which helps. But whenever the code you're debugging drops into the framework (or PHP), you'll need to break out your browser and spend time a great deal of time reading documentation to understand how to use the function. For example, certain functions in Laravel accept no arguments in the function signature, but the function body calls PHP methods to dynamically parse function arguments.

We spend a fair amount of time documenting all the framework and language-level magic constructs. If we've dropped the ball on documentation (which happens often) a new developer is at the mercy of coworkers to explain where the framework (or language) magic happens.

On the plus side, Laravel's batteries-included approach significantly speeds our time to MVP.

Scala's category theory approach to functional programming is not easy for new developers to understand at first glance. While most of our code (framework or otherwise) is now easily navigable with an IDE, developers now need to spend time understanding concepts such as for comprehensions, monads and ADTs. However, most functional concepts are understandable without the help of coworkers, which means a new dev can rely on Google to help understand a concept, rather than relying on a coworker.

Once knowledge of syntax has been attained, Scala's strong type system makes development far easier. We can communicate semantics through types and monads (such as Either, Future, Option and domain-specific ADTs), and incorrect code is immediately flagged by the IDE. A new developer making a change to a database schema may now change a database column name, recompile, and be presented with a list of every bit of code they've broken.

Using types to represent the semantics of our domain has been incredibly powerful, and makes potential bugs much easier to spot when reading the code. For example, rather than checking a user's subscription status inside a method, we can require a "SubscribedUser" type in our method signature. With this type in place, a new developer can no longer accidentally call that method with an "UnsubscribedUser".

Perhaps most importantly, the long term benefits of Scala's strong type system are incredibly valuable. We're a software agency, so our large projects experience development in phases. It may be 6-12 months before our team circles back to a large project for major development. In that time, we've forgotten all the quirks and gotchas of that particular framework and language, and Scala's strong static type system significantly decreases regressions during the new development effort.

In summary, new developers have a similar learning curve for each language/framework. And in the end, Scala's long term maintainability is more valuable than Laravel's speed to MVP.

Comment · 9 years ago
Their Elasticsearch type mapping shows they're using the English fulltext analyzer for message content, I'm curious if they're planning on supporting fulltext search for other languages in the future.
Comment · 10 years ago
We've found JIRA to be the best option for our small (5 person) team. We enjoy the ubiquitous integrations, powerful project management tools and reliability. Keyboard shortcut support is fantastic.

I would warn that (as of 1.5 years ago), JIRA Cloud is very slow. We've since moved to JIRA Server and solved the speed issues.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton