Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

Seven Languages in Seven Weeks

 
Author
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Greetings. I'm Bruce Tate, the author of Seven Languages in Seven Weeks. I'm here to tell you a little bit about the book and answer any questions you might have.

In the book, my publisher and I published a poll for the languages people would most like to see in the book. I had some ideas about what I wanted to accomplish too: at least three programming paradigms; at most one object oriented language; an emphasis on functional programming. With the two approaches, I settled on Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell.

The book takes the approach of letting the readers fend for themselves when installing the language, then providing three days of structured content, and allowing the rest of the week for projects. I've had lots of feedback on the approach. Advanced readers thought that the book moved too slowly; most people thought it moved briskly and was quite challenging. I think the balance is about right for most readers.

The goal of the book is not to teach a language end-to-end. Such a goal would require a whole book on each language and months of study. I was not qualified to write such a book. Instead, the approach is to take the reader far enough to solve a non-trivial problem. For example, I used Scala to concurrently and synchronously fetch four web pages and count the words on them. I used Prolog to solve a Sudoku. I used Clojure to build a shared cache (thanks, Stuart Halloway and Relevance for the help). You won't find full-scale business programming, but you will do enough to capture the essence of what makes each language special.

There are some other problems I had to solve as I wrote the book. I found the transition between languages difficult to manage. Eventually, I settled on comparing each language to a movie character. It's a little kitschy perhaps, but it did help me introduce the character of a language to a reader who was potentially new to it, and it also opened learning channels and allowed me to quickly capture the essence of working with a language. I probably spent longer coming up with these comparisons than I should have. Of course, feedback has been mixed. Some find the comparisons distracting, and some readily embrace them. I'm ok with that. The easiest way to write a book without offending anyone is to strip all of the author's personality from the book. You can find plenty of those books in other places.

All in all, I like this approach to writing about technology: providing a deep dive by ramping up quickly and letting the end user solve the installation problems using Google, leaving the author to grapple with the more interesting aspects of the technology. I hope the Pragmatic Bookshelf embraces the challenge and writes more of them.

 
Marshal
Posts: 25837
69
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch, Bruce!

I've just started reading about Erlang myself. Unfortunately I have so many other personal projects that I haven't even had time to download the language and try it out for myself, but maybe one of these days...
 
Bartender
Posts: 3225
34
IntelliJ IDE Oracle Spring Chrome Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to JavaRanch, Bruce

I was impressed by Scala and hence was tempted to learn Functional Programming. Started with Erlang, but later shifted to Haskell and found it interesting. But the major challenge I am facing is switching to the functional paradigm and I think that's where most of the people would face the problem. So am working on Scala and Haskell in parallel. But as Paul mentioned, office work in my case doesnt allow me to keep the study continuous. But I would be looking forward to reading your book and especially Scala and Haskell.
 
Bruce Tate
Author
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mohamed Sanaulla, I agree with you. Learning functional programming is a significant departure. I do think in the next five years, you're going to see a pretty serious uptake of functional languages. They are by far the right paradigm for dealing with concurrency. In terms of organization, too, they are much more powerful.

But it's very similar to the paradigm switch to objects. It was radically different, and extremely difficult to process. I think languages like Scala, Python and Ruby that support functional and object oriented concepts are going to be important for helping us make the transition.

Thanks for the comment.
 
Bruce Tate
Author
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Paul, thanks for your welcome!

Erlang is a big time brain warp for me. Strangely enough, working through Scala and Prolog helped me make the switch. If you pick it back up, I'd like to hear what you have to say about what worked and what didn't in terms of learning the language.
 
Mohamed Sanaulla
Bartender
Posts: 3225
34
IntelliJ IDE Oracle Spring Chrome Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Just one concern regarding these languages is the adoption by the enterprises on a large scale and also by the education community. Ruby seems to have established itself as one of the popular languages. Generally people tend to learn those technologies which would provide them with employment opportunities. I may be wrong in my perception.

I really like the Pragmatic Bookshelf
 
Bruce Tate
Author
Posts: 71
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mohamed Sanaulla, I agree. But I also think professionals need to learn new languages, whether they will use them in production or not. Just as a second spoken language can expand the way you think, a second programming language can change the way you approach programming. Working through this book has changed the way I write my Ruby code significantly.
 
Mohamed Sanaulla
Bartender
Posts: 3225
34
IntelliJ IDE Oracle Spring Chrome Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Bruce Tate wrote:Mohamed Sanaulla, I agree. But I also think professionals need to learn new languages, whether they will use them in production or not. Just as a second spoken language can expand the way you think, a second programming language can change the way you approach programming. Working through this book has changed the way I write my Ruby code significantly.


Totally agree with this. Thanks a lot Bruce for clarification and useful feedback
 
Paul Clapham
Marshal
Posts: 25837
69
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, when I learned XSLT I found I didn't have a problem with functional programming. But I'm going to have to find a personal project where Erlang is going to be useful. I don't want to just run through the examples, although I know that doing that might spark some ideas. It might take a while.
 
Bruce Tate
Author
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Paul Clapham wrote:Well, when I learned XSLT I found I didn't have a problem with functional programming. But I'm going to have to find a personal project where Erlang is going to be useful. I don't want to just run through the examples, although I know that doing that might spark some ideas. It might take a while.



You're a step ahead of where I was, then. Erlang is a little tougher to work into a typical development stack because it wants to be in the center of the stack. But you can see some isolated Erlang projects that have done well, like CouchDB, a NoSQL database.

Off the cuff, I can't think of anything I'd use Erlang for, but when I come across a potential Erlang Project, I'll know it. I will look for something with outrageous needs in the areas of reliability, concurrency, and performance. Erlang is extremely fast and reliable.

Thanks once again for your response.
 
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Mr. Bruce,
The dedication of your book is really touching and emotional, Lynda Lyle Tate is an amazing woman.

Every time I'm trying to dive into Scala I escape immediately, it looks to me to be very elaborated and over designed.
The typing system is so vast (trying to improve Java by injecting more static typing?).

What do you think of Scala language?
Personally my #1 language is Clojure.

Your book looks amazing (as all of your books), thanks for your time and effort.
 
Bruce Tate
Author
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

John Todd wrote:Hi Mr. Bruce,
The dedication of your book is really touching and emotional, Lynda Lyle Tate is an amazing woman.

Every time I'm trying to dive into Scala I escape immediately, it looks to me to be very elaborated and over designed.
The typing system is so vast (trying to improve Java by injecting more static typing?).

What do you think of Scala language?
Personally my #1 language is Clojure.

Your book looks amazing (as all of your books), thanks for your time and effort.



Scala does a pretty good job of merging two different paradigms. There are a bunch of things to reconcile: mutable state, program structure, types, and on and on. If you are limited to the Java ecosystem and the object oriented programming paradigm, you could do worse. That said, I had a hard time with Scala because I am not in the Java ecosystem at all, for the most part. I am also looking for a functional language that is a little more pure, so I don't have to deal with the sophistication of two type systems.

So I liked Scala currying and partially applied functions, and I really like the way that they abstracted the actor libraries. But if I was starting a green-field application, I might prefer to use something like Clojure, Erlang, or Haskell. But if I had a team of object oriented programmers and wanted to nudge them toward functional programming, Clojure might be a pretty good bet.
 
Bruce Tate
Author
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Bruce Tate wrote:

John Todd wrote:Hi Mr. Bruce,
The dedication of your book is really touching and emotional, Lynda Lyle Tate is an amazing woman.



Oh, and thanks for the kind words. Writing that dedication was a cleansing experience for me, and meant a great deal to my family. Thanks for noticing.

 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Many thanks for the book Bruce. I confess I was dubious about the concept when I first heard about it via pragprog, but then I got my copy and all doubts went out the window. Working through the book in my spare time I'll probably take seven months rather than seven weeks, but that's fine since I'm a s-l-o-w learner.

I'm presently working on a small scripting language for raster image processing. The book is very helpful this context: the explanations and contrasts of the languages being the perfect antidote to tunnel vision in design and implementation.

Great to see Prolog in there ! I'm looking forward to reacquainting myself with it after a very long break. And Io looks like it will be great fun - I love little languages.

Thanks again and cheers,
Michael
 
Bruce Tate
Author
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Michael Bedward wrote:Many thanks for the book Bruce. I confess I was dubious about the concept when I first heard about it via pragprog, but then I got my copy and all doubts went out the window. Working through the book in my spare time I'll probably take seven months rather than seven weeks, but that's fine since I'm a s-l-o-w learner.

I'm presently working on a small scripting language for raster image processing. The book is very helpful this context: the explanations and contrasts of the languages being the perfect antidote to tunnel vision in design and implementation.

Great to see Prolog in there ! I'm looking forward to reacquainting myself with it after a very long break. And Io looks like it will be great fun - I love little languages.

Thanks again and cheers,
Michael



Thanks for the kind words!
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic