The document discusses the current state of web development and identifies several issues, including slow page loading times, large file sizes, reliance on outdated libraries and browser hacks, and an emphasis on flashy innovations over foundational web standards. It argues that as an industry, web development has gotten too complex and focuses too much on impressing other developers rather than meeting users' needs. It calls for simplifying solutions, supporting baseline functionality for all browsers, and prioritizing education and collaboration over quick fixes.
Keynote at Codebits in Portugal, April 2014, explaining the how and why of Firefox OS and how to use it. Video: https://videos.sapo.pt/ZYQyY57ZlB6lhgIdBzrs
This document discusses JavaScript and ES6. It covers some of the historical issues with JavaScript, the learning process, dependency on libraries/frameworks, and new features in ES6. It also discusses transpiling code to support older browsers, standards and interoperability challenges, and new JavaScript engines like ChakraCore that could break monopolies.
Microsoft has become more open in recent years by open sourcing many products, making products cross-platform, and making training materials openly available. This open approach makes business sense for Microsoft as it attracts developers, allows employees flexibility, and taps into outside skills. Examples of Microsoft's success with open source include the Edge browser, Visual Studio Code editor, TypeScript transpiler, and ChakraCore JavaScript engine. The presenter encourages attendees to help promote Microsoft's open products and projects through conference talks, writing, and contributing translations and code.
This document discusses upgrading JavaScript to ES6 and using TypeScript as an alternative. It covers some of the old issues with JavaScript, the learning process, tooling challenges, and dependency on libraries/frameworks. ES6 promises to address many of these with new features, but browser support is still evolving so transpilation is needed. TypeScript is presented as a shortcut that provides type safety and class-based syntax without transpilation overhead. The document also mentions the ChakraCore JavaScript engine as a promising new development.
The document discusses the evolution of the web from progressive web apps to native mobile apps and back again to progressive web apps. It notes that early mobile web faced issues like small screens, poor connectivity and unreliable browsers, leading to the rise of native apps. However, app distribution issues like slow updates and the "walled garden" approach of app stores have led to a renewed interest in progressive web apps that work offline but do not require app stores, allowing for more open distribution like the original web.
In the last year or so things changed drastically. Everybody uses an iPhone6, is connected 24/7 at high-speed without data caps, is healthy, has shiny teeth and loves spending money on your products. All you need to do is constantly innovate and you'll be a major success. The term for this is "the modern web". Another word for it is nonsense. There is a web people want and there is one that people use. We should start thinking about upgrading the one people use and stop chasing our own tail trying to mimick other environments.
The document discusses the history and future of JavaScript and Node.js. It covers the promises and problems of JavaScript, how Node.js helped address some issues but created new ones like monoculture. It then discusses how ES6 and the ChakraCore engine can help modernize JavaScript and break the Node monoculture by providing an additional engine option. The author hopes for less drama, embracing change, simplicity, inclusiveness, and prioritizing users over developers.
This document contains the transcript of a presentation by Chris Heilmann on web development. Some of the key points discussed include: - The benefits of progressive enhancement and using HTML, CSS, and JavaScript together to build robust and accessible websites. - How limitations in early design can foster creativity. - The importance of error handling and defensive coding practices. - Embracing new technologies like Service Workers and Manifests to build Progressive Web Apps. - Rethinking the idea that JavaScript is unreliable and should not be depended on, as modern browsers have made it a capable tool.
“If Tetris has taught me anything, it’s that errors pile up and accomplishments disappear” is a common quote and it seems we’re living this to its full extend as web developers. We fail to celebrate the successes we have and the tools that are at our disposal but we’re never short of finding reasons why things don’t work. We also tend to pile on technology on technology to solve problems that may actually not exist and thus clog up the web. In this talk Chris Heilmann wants to remind us what we achieved and how we should celebrate it and how we should stop trying to solve problems that are simply beyond our control.
A talk about future technologies of the web, and how our time is equally well spent cleaning up the web of now.
I built this presentation for Prime ICT Meetup that happened in Kathmandu on June, 2016. Here, I talk about What JavaScript really is and about some new features introduced in ES6. The first part of the slides are taken/influenced from David Crockford's talk called "Really. JavaScript" : https://www.youtube.com/watch?v=lTWGoL1N-Kc
ES6 and other extensions to JavaScript are exciting, but they have the problem that they are not backwards compatible. How can we deal with that issue? Or is it really one?
This document summarizes Chris Heilmann's talk about making ES6 available to all with ChakraCore and TypeScript. It discusses issues with JavaScript like lack of type safety and classes, and how ES6 and tools like Babel and TypeScript help address these. It also introduces ChakraCore, a new JavaScript engine that can make ES6 available in more places like Node.js and provides benefits like improved performance compared to other engines. Overall, it outlines how tools and technologies are helping modernize JavaScript and expand where it can be used.
This document discusses challenges facing web developers and proposes ways to address them in a responsible manner. It notes that web principles of maintainability, accessibility, and flexibility are often challenged by a focus on visuals over content and a belief that things should look the same everywhere. It argues that developers internalize these challenges too much by releasing things too quickly without proper crafting. The document calls on developers to be more responsible for their work by always questioning authority and avoiding blind faith in new technologies or browser innovations. It stresses the importance of focusing on users over other priorities and addressing issues through love rather than punishment.
Keynote of the second You Gotta Love Frontend conference in Tel Aviv/Israel talking about what to expect of the web in the near future.
The document discusses using JavaScript like a buffet, where developers should be flexible and not try to do everything with JavaScript or force their preferences on others. It encourages sharing code openly but also being considerate of different environments and users. Developers are advised to focus on quality over quantity and consider progressive enhancement over delivering all functionality at once.
The document discusses whether WordPress should be considered a content management system (CMS) or just a blogging platform. It outlines some of the key features of a CMS and compares them to WordPress' capabilities. While WordPress can be used as a CMS, it may not be well-suited for complex workflows, custom applications, or digital asset management at large scales. The attitudes of WordPress and Drupal founders and their different focuses on usability versus engineering are discussed as factors that influence the platforms. The document considers whether WordPress would benefit from additional complexity and capabilities for CMS use cases or if simplicity should be preserved.
This document summarizes a talk given by Chris Heilmann at ForwardJS in 2015. Heilmann discusses the state of web development technologies and how developers have focused too much on experimental features that are not ready for production use. This has led to a fragmented web where browsers implement features differently. He argues developers should focus on standardizing and improving existing web standards rather than constantly introducing new technologies. ES6 is highlighted as a priority for improving existing JavaScript.
Responsive web design is an approach to web design that makes web pages render well on a variety of devices and screen sizes. It involves using fluid grids, flexible images, and media queries to automatically adjust for different screen sizes and devices. While the concept has existed since the early days of the web, it has grown in popularity recently due to advances in CSS3 and JavaScript that allow for more flexible and dynamic layouts. Responsive design aims to provide an optimal viewing and interaction experience across a wide range of devices by adapting the layout depending on screen size and orientation.
- Progressive Web Apps use new technologies like Service Workers to allow web apps to work offline, have native-app like functionality, and be accessible through a URL rather than an app store. - While native apps once had advantages over mobile web apps, the capabilities of the web platform have advanced so that Progressive Web Apps can provide many of the same benefits as native apps without issues like slow distribution. - For web developers, it is important to build with a focus on error handling, performance, and usability in varied network conditions, taking advantage of the full capabilities of browsers while still providing functionality without JavaScript.
It is easy to think what we have as developers is what people use and that lead us to make the web bloated.
This document discusses 6 rules for responsive web design: 1. Responsive design doesn't end with squishy layouts - optimize based on user capabilities rather than just screen size. 2. There is no responsive pixie dust - streamline workflows and use rapid prototypes and style tiles to communicate fluid layouts. 3. Your workflow will change - iterate designs quickly through prototypes rather than big reveals. 4. Your tools will change - leverage preprocessors like SASS and frameworks like Foundation for responsive coding. 5. The web is responsive by default - prioritize content and build APIs to support multiple platforms. 6. Embrace unpredictability - acknowledge the constraints of different devices
This document discusses progressing web development and applications. It talks about some common criticisms of the web, including that browsers differ too much and the web is too flexible. However, it argues that browser differences allow for innovation and flexibility is one of the web's strengths. It promotes an approach of focusing on capabilities rather than browsers. The document also discusses progressing technologies like service workers and progressive web apps that can make applications work offline and feel more like native apps while still being web-based. It concludes by arguing the web is not going away and is a great platform to build upon.
1. Web development used to be simple but has become increasingly complex over time as new technologies and frameworks have emerged. 2. The document argues that there is a distinction between native web apps that run entirely in the browser using JavaScript and server-side web apps, and that both have valid uses. 3. It advocates for building single-page apps as native web apps using modern browser capabilities and deploying them as static sites for performance and simplicity while relying on external services for backend functionality.
The document discusses the state of JavaScript and opportunities for its responsible use. It encourages learning JavaScript properly rather than copying code without understanding. It argues against workarounds for browser issues and urges focusing on standards compliance. Updating tools and libraries, removing legacy code, and embracing modern JavaScript features like those in ES6 can help address past issues and enable further innovation on the web.
There are a number of options when going mobile, and it's not slowing down. Why choose one over the other? What are the strengths and pitfalls? What's right for your customers and users? We'll go over each option, with examples of how you can come to the right strategy around your mobile offerings.
Chris Heilmann gave a talk about breaking out of endless callback loops in JavaScript development. He discussed the history and evolution of JavaScript, including its growing capabilities and uses. However, he emphasized that progressive enhancement and capability testing are still important principles on the client side to avoid broken experiences. While tools like transpilation and polyfills can help bring future features to current browsers, overreliance on them has downsides. The best approach is to embrace JavaScript's use in different environments and balance innovation with backward compatibility.
As JavaScript developers we are hot property. This can be overwhelming and in this keynote Chris Heilmann gives some history lessons to show that we don't need to get frustrated, but pick our battles.
This document summarizes a talk given by Chris Heilmann calling on JavaScript developers to focus less on impressing each other and more on building. It discusses how developers prioritize convenience over user experience by using complex frameworks they don't understand to solve problems that don't exist. It encourages developers to embrace new JavaScript features like ES6, simplify their code, and focus on performance and the needs of all users.
This document discusses tensions between innovation and impatience in JavaScript development. It notes that while developers want new features now, polyfills and transpilers can introduce dependencies and forfeit runtime benefits. There is also a split between those who see potential for a richer web and those who advocate progressive enhancement to avoid broken experiences. The document argues for balancing innovation with responsibility by avoiding user agent sniffing, optimizing for all environments, and not over-engineering for complexity's sake.
Web performance is important for businesses. Slow site speeds can negatively impact key metrics like conversion rates and search engine rankings. The document recommends measuring a site's performance, improving front-end issues like page load times, and continuously monitoring metrics to ensure optimizations are effective. Specific front-end optimizations include minifying files, lazy loading content, using a content delivery network, and avoiding unnecessary requests.
The document discusses techniques for developing minimum viable products (MVPs) and continuously testing and improving apps, services, and ideas. It recommends brainstorming critical features, prototyping an MVP focused on viability, and using A/B testing both during and after development to improve conversions and user experience over time. An example is given of an augmented reality app called Chatterbucks that was successfully launched in 4 weeks using these techniques instead of 6-12 months for a more fully-featured initial version.
Keynote covering what Progressive Web Apps mean to the market and what issues of native apps they need to fix.
This document discusses the importance of web page speed and provides tips to optimize performance. It emphasizes that speed is important for user experience and engagement. Slow pages can lead to high bounce rates and negatively impact SEO. It then provides the "golden rules" of optimization, which include reducing HTTP requests, minimizing file sizes, caching assets, and using techniques like lazy loading. Specific tools are recommended for measuring performance, including PageSpeed, Speed Tracer, and Dynatrace Ajax. Browser limitations and upcoming technologies that may improve speed are also briefly covered. The goal is to make the web faster by optimizing code, images, assets and more.
If you're running a tech start-up, it's essential that you familiarize yourself with the fundamentals of web development. Ultimately knowing how to "talk to the talk" will help you communicate better with developers, and overall just look really cool. In this hour and a half long workshop, Chris Castiglione, experienced developer and founder of One Month Rails, will tackle some development principles and answer questions to get you on the right path, such as, "Front-end vs. Back-end?", "Is UX necessary for my project?", "What is this Javascript function thingy, and why am I passing it strange math equations to it?" He will also have you coding a bit yourself! Leading a development team (without being a developer yourself) can sometimes feels like talking about dancing, and so this is an interactive and friendly environment in which to learn the basics. Come with questions, and a desire to have fun! OneMonth.com OneMonthHtml.com OneMonthRails.com
This document discusses programming and the web development process. It begins by defining programming as a set of instructions to solve a problem, using the example of instructions for making a peanut butter and jelly sandwich. It then discusses why learning programming is important. The rest of the document outlines the typical steps in the web development process, including user experience design, information architecture, visual design, and development. It provides examples of each step and timelines for hypothetical web projects.
This document provides 20 tips for achieving high performance responsive design. Some of the key tips include preferring CSS and fonts over images to reduce file sizes, optimizing images, enhancing touch operations, using lazy loading, employing a content delivery network, validating code, and setting page load speed goals. It also recommends being selective with content, planning the technology approach, getting expert training, designing mobile first or simultaneously across devices, and setting up analytics by breakpoint. The tips are aimed at improving page loading speeds, reducing file sizes, and creating an optimized experience across devices.
We are obsessed with coding and creating automated workflows and optimisations. And yet our final products aren't making it easy for people to use them. Somewhere, we lost empathy for our end users and other developers. Maybe it is time to change that. Here are some ideas.
This document discusses ways to improve how web developers learn best practices through browser and tooling improvements. It suggests that linting and inline insights directly in code editors could help prevent mistakes by flagging issues early. A tool called webhint is highlighted that provides one-stop checking and explanations of hints related to performance, accessibility, security and more. The document advocates for customizing hints based on a project's specific needs and environment. Overall, it argues for accelerated learning through context-sensitive, customizable best practices integrated into development workflows.
This document discusses privilege in the context of social media and the internet. It acknowledges privileges like internet access, the ability to communicate, and supportive online communities. It warns that machine learning and algorithms risk creating echo chambers and guided messaging if they are not kept in check by human curation. The document advocates taking back the web for decent, thinking and loving humans and using privileges to help others gain access to learning, communication, and communities.
JavaScript is a bigger world than a language these days. Time to take stock and find happiness in that world.
This document discusses artificial intelligence and how it can help humans. It covers that AI is not new, having originated in the 1950s, and is now more advanced due to increased computing power. It also discusses how AI utilizes pattern recognition and machine learning. The document then covers several applications of AI including computer vision, natural language processing, sentiment analysis, speech recognition/conversion and moderation. It notes both the benefits of AI in automating tasks and preventing errors, as well as the responsibilities of ensuring transparency and allowing people to opt-in to algorithms.
The document discusses concerns about the perception and realities of coding careers. It expresses worry that coding is seen solely as a way to get a job rather than as a means of problem-solving. While coding can provide fulfilling work, the document cautions that the need for coders may decrease with automation and that the role may evolve from coding to engineering. It suggests a future where machines assist with repetitive coding tasks and people focus on delivering maintainable, secure products with attention to privacy and user experience.
PWA are a hot topic and it is important to understand that they are a different approach to apps than the traditional way of packaging something and letting the user install it. In this keynote you'll see some of the differences.
This document discusses privilege in technology and perceptions of technology workers. It acknowledges the privileges that tech workers enjoy, such as access to resources and high demand in the job market. However, it also notes problems like peer pressure, lack of work-life balance, and imposter syndrome. Both tech workers and the public have skewed perceptions of each other - tech workers feel others do not appreciate or understand their work, while the public sees tech workers as antisocial or caring only about profit. The document encourages taking small steps to improve the situation, such as being kind to oneself, considering others, sharing knowledge, and focusing on quality over quantity of work.
The document provides five ways for JavaScript developers to be happier: 1) Concentrate on the present and focus on creating rather than worrying about the past or future. 2) Limit distractions by streamlining your development environment and using an editor like VS Code that consolidates features. 3) Make mistakes less likely by using linters to catch errors as you code. 4) Get to know your tools better like debuggers to avoid console.log and gain insights to build better solutions. 5) Give back to others in the community by being helpful rather than causing drama.
The document discusses progressive web apps (PWAs) and provides suggestions for improving them. It notes that while PWAs aim to have engaging, fast, integrated, and reliable experiences like native apps, they still have room for improvement in areas like speed, integration, and reliability. It emphasizes that PWAs should adhere to web best practices and provide actually useful experiences rather than just focusing on technical features. The document encourages helping the PWA effort by providing feedback, using and contributing to tools, keeping messaging up-to-date, and promoting high-quality examples.
Chris Heilmann gave a talk at BTConf in Munich in January 2018 about machine learning, automation worries, and coding. He discussed how coding used to refer to creative programming within technical limitations but now often refers to programming for work. He addressed common worries about new technologies and dependencies, and argued that abstractions are not inherently bad and help more people build products together through consensus. The talk focused on using tools to be more productive and enabling rather than seeing them as dangers, and creating solutions for users rather than fighting old approaches.
The document provides advice and encouragement for someone starting out with JavaScript development. It discusses how JavaScript can be used in many environments like browsers, apps, and servers. It recommends resources like MDN and tools like linting to help avoid mistakes. It emphasizes that this is an exciting time for JavaScript and advises setting priorities and standards, being involved in the community, and bringing new voices and perspectives.
Keynote at halfstackconf 2017 discussing the falsehood of the idea that in order to survive the automation evolution everybody needs to learn how to code. Machines can code, too.
Progressive Web Apps (PWAs) can provide app-like experiences through the web by making web content fast, reliable and engaging. While PWAs may not be necessary for all projects, they can help clean up and speed up current web-based projects. PWAs leverage new web capabilities like service workers to work offline, load fast, and improve the user experience without having to meet all the requirements of native apps.