|
July 20, 2016
Another great day in history! This day in 1969 marked Apollo 11's landing on the Moon, in the Sea of Tranquility. Of course, your iPhone is 1k times more powerful and has 250k more RAM than the lunar module's computer did. It's time to really start harnessing the full power of modern computers. Let's start with tools for the JVM.
Modern web applications deserve modern tools. Now you can harness the JVM’s rich infrastructure while taking advantage of the expressive power and brisk performance of Clojure, a modern functional language. We'll show you how in Web Development with Clojure, Second Edition, now in print and shipping from pragprog.com/book/dswdcloj2. And read on for Q&A with author Dmitri Sotnikov.
In the Ruby on JVM space, Deploying with JRuby 9k: Deliver Scalable Web Apps Using the JVM shows you three JRuby deployment strategies that give you the performance and scalability you need, while you use a language designed for rapid development: Ruby, the popular language of Rails and hip startups everywhere. Now in print and shipping from pragprog.com/book/jkdepj2.
Come and get 'em!
Web Development with Clojure, Second Edition: Build Bulletproof Web Apps with Less Code
Stop developing web apps with yesterday's tools. Today, developers are increasingly adopting Clojure as a web-development platform. See for yourself what makes Clojure so desirable, as you create a series of web apps of growing complexity, exhibiting the full process of web development using a modern functional language. Journey through all the steps in developing a rich Picture Gallery web application—from conception to packaging and deployment. You'll work hands-on with Clojure and build real-world, professional web apps.
This fully updated second edition reveals the changes in the rapidly evolving Clojure ecosystem. Get up to speed on the many new libraries, tools, and best practices. Gain expertise in the popular Ring/Compojure stack using the Luminus framework. Learn how Clojure works with databases and speeds development of RESTful services. See why ClojureScript is rapidly becoming a popular front-end platform, and use ClojureScript with the popular Reagent library to build single-page applications.
This book is for you, whether you're already familiar with Clojure or if you're completely new to the language.
Now in print and shipping from pragprog.com/book/dswdcloj2.
Five Questions about Clojure and Web Development
by Dmitri Sotnikov, author of Web Development with Clojure, Second Edition
Q: What’s Clojure like?
A: Clojure is a small, elegant, and extensible language whose primary goals are simplicity and correctness. As a functional language, it emphasizes immutability and declarative programming. It is hosted on the Java Virtual Machine, giving it a mature and highly performant environment with great tooling and deployment options.
Q: What’s so special about Clojure?
A: Anything that can be expressed in one high-level language can also be expressed in any other. But the practical question is how well the language maps to the problem to be solved. Does the language let you think in terms of your problem domain, or do you have to keep translating domain concepts in the constructs of the language? The best case is when you can use the language without thinking about it. This is where Clojure shines. It allows you to easily derive a solution expressed in the terminology of the problem domain.
Q: Why use a functional language for web apps?
A: Functional languages are ideal for writing large applications because by default they eschew global state in favor of immutability. Having data that can’t change its value off-stage allows us to safely reason about parts of the application in isolation. In addition, the focus on immutability makes it much easier to tackle the difficult problems of parallelism and concurrency. While there is no silver bullet for addressing either problem, a functional language can go a long way in helping you reason about them.
Q: Why write web apps in Clojure?
A: Clojure boasts tens of thousands of users, and web development is one of the major domains where it’s used. But many other platforms are available for doing web development, so why should you choose Clojure over one of them? Well, most popular platforms force you to make trade-offs: sacrificing performance, infrastructure, conciseness, or ease of development. By hosting a modern functional language on the JVM, Clojure’s creator doesn’t ask you to sacrifice anything.
Q: Are there Clojure frameworks like Rails for Ruby?
A: The Clojure community has settled on using libraries coupled with project templates in favor of frameworks. Libraries can be easily composed in a way that makes sense for your particular project. Meanwhile, the templates allow creating projects quickly without the need for the inversion of control seen in frameworks. Many web developers find that this model has clear advantages over the framework-based approach. I think you will too.
Now in print and shipping from pragprog.com/book/dswdcloj2.
Deploying with JRuby 9k: Deliver Scalable Web Apps Using the JVM
JRuby is a fast, scalable, and powerful JVM language with all the benefits of a traditional Ruby environment. JRuby deployments have fewer moving parts and consume less memory than traditional Ruby. With this book, you can now use JRuby in the real world to build high-performance, scalable applications.
Deploying your apps on the JVM requires some new approaches. Start by creating a JRuby microservice that takes advantage of the JVM's native concurrency. Then use Docker to build a virtual production environment that's a stable, reproducible place to explore JRuby deployment. Next, port an existing Rails application to JRuby, preparing the app to take advantage of the JVM platform—all while keeping everything that's friendly and familiar to Ruby developers. Deploy the Rails app to Docker with a multi-threaded Puma server to Heroku or your own private cloud.
Take advantage of powerful Java libraries. See how JRuby fits into the enterprise by switching your app to use TorqueBox, an all-in-one JRuby environment that includes built-in support for messaging, scheduling, and daemons—perfect for handling the big jobs. Finally, take a deep dive into JVM performance tuning and set up a continuous deployment environment with Travis CI.
Now in print and shipping from pragprog.com/book/jkdepj2.
Upcoming Author Appearances2016-07-26 Johanna Rothman,
Agile 2016
2016-07-28 Johanna Rothman,
Agile 2016
You Could Be a Published Author
Is there a tech topic you are deeply passionate about and want to share with the rest of us? You could become a published Pragmatic Bookshelf author! Take a look at our pragprog.com/write-for-us page for details, including our 50% royalty (yes, for real!) and world-class development editors.
Don't Get Left Out
Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on pragprog.com (email address and password is all it takes) and select the checkbox to receive newsletters.
Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:
Tell your friends! Tweet this
Follow us on Twitter: @pragprog, @pragpub, Andy Hunt @PragmaticAndy.
Andy Hunt
Publisher, Pragmatic Bookshelf
Books • eBooks • PragPub Magazine • Audiobooks and Screencasts PragProg.com
Manage your subscription using your account, or permanently unsubscribe here. Sent by the Pragmatic Programmers, LLC. • 9650 Strickland Rd Ste 103-255• Raleigh NC 27615
|