TypeScript at Slack: how we converted and what we learned

Case study of converting a large codebase from JavaScript to TypeScript: it is not as painful as you might think.

 

On the Slack Engineering Blog, Felix Rieseberg writes:

We decided to use Microsoft’s TypeScript, which combines static type analysis with a compiler. Modern JavaScript is valid TypeScript, meaning that one can use TypeScript without changing a single line of code. This allowed us to use “gradual typing” by enabling the compiler and the static analysis early, without suspending work on critical bug fixes or new features.

In practice, switching the analysis and the compiler on without changing code means that TypeScript will immediately attempt to understand your code. It uses built-in types and type definitions available for third party dependencies to analyze the code’s flow, pointing out subtle errors that went previously unnoticed. Wherever TypeScript cannot understand your code, it will assume a special type called “any” and simply move on.

Read more from the source: Several People Are Coding

CSS Animations vs the Web Animations API: A Case Study

Controlling CSS keyframes, transitions and animations from JavaScript: pretty intuitive

 

Last week, I wrote about how I created the bitsofcode logo animation with CSS. After that, it was suggested that I attempt a comparison between a CSS animation and the Web Animations API, so here it is! Introduction to the Web Animations API As with last week, I’ll start this

Read more from the source: bitsofcode

Richard Clayton – Software Estimation is a Losing Game

There are so many unseen downsides to estimation. Instead, prioritize and get to work.

 

Software Estimation is a Losing Game – Should we even bother?

An alternative:

Let’s call it, Budget-Driven Development, or BuDD for short. In BuDD, development teams are given a set of resources and develop what they can until the budget is gone. I’m sure I just gave someone a heart attack, but when you think about it, it’s not too unreasonable. Many contracts have fixed time and costs. You make a guarantee that the customer will get a specific number of man-hours of development. Given a prioritized backlog, developers work on the three most important items. I imagine it would work similar Pandora’s prioritization model, but not be constrained by time.

You guarantee quality to your customer by:

  • Delivering capability often.
  • Allowing the customer to prioritize development.

Read the full article at: rclayton.silvrback.com

CodePen Projects – Zero setup, full-featured front end web development environment, right here in your web browser

Build and host simple websites with… CodePen?

 

Your sidebar. Whatever files you need.

Web Design 101. You have a homepage and a contact page. Your `index.html` links to `contact.html` with a anchor link. That works exactly as you think it would in the CodePen Project Editor.

Everything works exactly as you would expect in developing a website with a local file system and simple web server. Relative file paths to your images? No problem. @import in your CSS? Do it. Ajax requests? Sure thing. Nested folders? Got ’em.

Read more from the source: codepen.io

Getting to know CSS Grid Layout

CSS Grids may reduce your need for media queries

 

CSS Grid is the most critical layout feature to come to browsers since Flexbox. It allows us to escape some of the magic numbers, hacks, and workarounds that we’ve grown accustomed to using for the last 15 years. It brings simplicity to declaring layouts that will tear a chunk out of most of the major CSS frameworks, and reduce bloat in our own hand crafted styles.

If you’re not familiar with what CSS Grid is, and you’ve made it this far, it’s a layout tool that applies to a containing element which then manages how the child elements are spaced, sized, and aligned.

CSS Grid gives us powerful new abilities — most notably for layout to be aware of both horizontal and vertical space at the same time, for changes to layout not to impact markup, and the ability adapt to available space without the need for media queries.

Read more from the source: Campaign Monitor Engineering

Replacing the Jet Engine While Still Flying

Firefox is taking a one-piece-at-a-time strategy to replace the Gecko rendering engine with a modern one coded in Rust.

 

Mozilla’s been working on a brand new, top-secret engine. Except it’s totally not top-secret. Never was. At another company it would have been a top-secret project. At Mozilla, it’s all done out in the open.

The project is called Servo. It was started as an experiment. It’s coded in a new programming language called Rust. (Gecko is written in C++.) And it’s open source. You can totally help us make it.

Read more from the source: jensimmons.com