Domain Specific Language (DSL)
Whatever Happened to Desktop Development in Ruby?

Summarized using AI

Whatever Happened to Desktop Development in Ruby?

Andy Maleh • February 17, 2015 • Earth

In the talk "Whatever Happened to Desktop Development in Ruby?" presented by Andy Maleh at the MountainWest RubyConf 2011, the speaker explores the state of desktop application development within the Ruby programming landscape. He observes that while web development using Ruby frameworks like Rails and Sinatra is thriving, desktop development remains relatively underexplored. Maleh highlights the tendency of developers to gravitate towards Java technologies and .NET for desktop applications, emphasizing the need for better Ruby options.

Key Points Discussed:

  • Desire for Learning: Maleh identifies himself as a software craftsman, advocating for continuous learning through practical experience rather than formal education.
  • Shift to Web Applications: The industry has shifted focus primarily to web applications, with desktop applications being less commonly developed. He notes the emergence of the Mac App Store, signifying a still-existing demand for desktop software.
  • Underutilization of Ruby: Despite the development of numerous desktop applications, most are not created using Ruby, which Maleh finds surprising.
  • Frameworks Overview: He introduces three Ruby frameworks for desktop development:
    • Shoes: Known for its simplicity, Shoes allows easy application creation with a user-friendly syntax but lacks advanced features required for modern applications.
    • Limelight: Aims for performance and multimedia capabilities, making it suitable for more interactive applications and providing integration with Java libraries.
    • Glimmer: Features a Domain-Specific Language (DSL) that simplifies GUI development, though it requires more initial setup compared to Shoes.
  • Comparative Analysis: Each framework has its unique benefits:
    • Shoes is easy for beginners and great for quick applications.
    • Limelight caters to more complex interfaces with animation capabilities.
    • Glimmer offers flexibility and component variety but needs extensive setup.
  • Data Binding Importance: Maleh discusses the necessity of data binding in modern applications, advocating for frameworks that ensure real-time synchronization between user inputs and data models.

Conclusion:

Maleh concludes by reiterating that each of the frameworks has particular strengths and weaknesses depending on project requirements and developer preferences. He encourages attendees to explore these Ruby frameworks to enrich their desktop application development experiences, and invites further discussion on their applicability and personal experiences with Ruby desktop development. The talk aims to shed light on the often-overlooked potential of Ruby in the realm of desktop applications, encouraging innovation and exploration in this area.

Whatever Happened to Desktop Development in Ruby?
Andy Maleh • February 17, 2015 • Earth

By, Andy Maleh
While web development is thriving in the Ruby world with Rails, Sinatra, and other frameworks, desktop development is still not very common as a lot of developers rely on Java technologies like Eclipse or straight .NET technologies such as Windows Forms. This talk will walk attendees through some Ruby desktop development frameworks/libraries, contrasting the pros and cons of each, and mentioning what is missing that discourages developers from relying on Ruby to build desktop applications. Frameworks/libraries covered will include MacRuby, Shoes, Limelight, and Glimmer.

Help us caption & translate this video!

http://amara.org/v/GJEx/

MountainWest RubyConf 2011

00:00:14.440 Hello everyone, I am Andy Maleh, a senior consultant. However, I usually consider myself more of a software craftsman.
00:00:21.140 How many of you here consider yourselves craftsmen? Show of hands, please.
00:00:29.690 Okay, it seems like quite a few. It appears that many people have embraced the idea of craftsmanship.
00:00:36.739 In my opinion, software craftsmanship is just an idea where people are devoted to learning and improving their skills.
00:00:41.930 We gain a lot of our knowledge and experience on the job every day, rather than just formal education.
00:00:49.070 While I do have two degrees from universities, it’s clear that real learning happens through practice.
00:00:55.220 So, today I want to talk about whatever happened to desktop development in Ruby.
00:01:06.170 I would like to see how many people here are currently doing desktop development.
00:01:14.450 It’s somewhat surprising, attending an event like this which is not strictly a Rails conference.
00:01:21.200 We’re all aware that the industry has shifted significantly towards web applications.
00:01:27.040 However, desktop applications continue to appear regularly. A prime example of this is the launch of the Mac App Store.
00:01:36.570 Apple has opened the Mac App Store for the Mac platform itself, rather than just focusing on iPad applications.
00:01:43.820 The truth is, many applications are being developed but surprisingly few are written using Ruby.
00:01:50.909 Most desktop applications are typically written with Objective-C, and there's not much utilizing Java-based technologies.
00:02:02.009 This has been my motivation to explore Ruby desktop development libraries and frameworks.
00:02:08.280 I want to highlight three specific frameworks: Shoes, Limelight, and Glimmer.
00:02:16.769 These frameworks take full advantage of Ruby for developing desktop applications.
00:02:22.680 Unlike other frameworks that build on top of existing C libraries, these are more Ruby-focused.
00:02:31.050 Let’s begin by discussing what a desktop application is so we’re all on the same page.
00:02:41.459 Typically, desktop applications consist of widgets such as buttons and text fields.
00:02:51.959 These applications can be maximized, minimized, and can have multiple windows open.
00:02:57.480 I want to explore full-screen 3D applications and how they differ from simple gadgets.
00:03:03.060 So, what has shaped the evolution of desktop applications in recent years?
00:03:08.070 I have about four years of experience with office automation in Java, having previously dabbled in C++.
00:03:15.150 Let me show you an example of Java syntax with a 'Hello World' program.
00:03:20.340 As you can see, the syntax can be quite verbose, and there is a lot to learn since it is not as straightforward.
00:03:26.940 In contrast to Java, web development typically employs a hierarchical syntax with HTML and CSS.
00:03:31.940 An example of a Ruby framework is Glimmer, which builds on top of wxRuby.
00:03:39.750 This framework allows you to build applications with more ease and a clearer syntax.
00:03:46.740 An example of code using Glimmer simplifies the creation of a user interface.
00:03:53.190 In this example, we create a window and add labels and text boxes to the layout.
00:04:01.350 This demonstrates a minimal basic syntax that is easy to work with.
00:04:06.660 I want to open people's minds to the possibilities Ruby provides for desktop applications compared to Objective-C.
00:04:13.410 Additionally, I will discuss various frameworks and how they differ from one another.
00:04:19.680 This is just a brief overview of what is out there, including the three frameworks we've covered.
00:04:27.120 I want to begin with Shoes, which is one of the oldest frameworks available.
00:04:36.570 Shoes was designed to enable developers to create desktop applications easily, without the complexity that other libraries impose.
00:04:54.800 It was built to support drawing and animations and is known for its user-friendly interface.
00:05:01.660 Shoes comes with its own runtime environment, making it easier to deploy applications.
00:05:07.020 To create an application with Shoes, you declare the application, followed by the UI components.
00:05:14.120 For example, you can create labels, text boxes, and buttons seamlessly using a straightforward syntax.
00:05:20.340 However, while Shoes supports many UI components, it lacks advanced features required for modern applications.
00:05:29.060 I'll highlight that although Shoes is functional, it is missing some supporting elements for business applications.
00:05:35.000 The next framework I want to discuss is Limelight, which I find fascinating.
00:05:40.680 Limelight was conceived to focus on performance and enabling richer user interactions.
00:05:46.680 It provides a way to build applications like those seen in multimedia platforms, ideal for games and animations.
00:05:53.190 Limelight also allows better integration with existing Java libraries for even more functionalities.
00:06:02.940 As we continue, I’ll share how Limelight can be leveraged for animation in development.
00:06:09.620 Next is Glimmer, which offers a DSL for a smoother experience compared to traditional GUI approaches.
00:06:17.760 The architecture lets you build GUIs easier and focuses on a declarative approach.
00:06:24.110 For example, with Glimmer, you define components in code that create a visual representation of your application.
00:06:30.830 This makes it highly intuitive, providing an elegant way to manage the user interface elements.
00:06:37.130 Glimmer provides various components from simple buttons to complex grids, making it highly flexible.
00:06:45.220 Despite its strengths, Glimmer still requires significant setup before starting, particularly regarding dependencies.
00:06:52.000 It's important to weigh the pros and cons when choosing a framework for your next project.
00:06:59.560 In summary, Shoes is the easiest to start with, while Limelight offers animation.
00:07:07.519 Glimmer facilitates data binding and more flexibility but requires more initial configuration.
00:07:14.919 As we consider these frameworks, let’s also look at their potential for building data-driven applications.
00:07:21.150 Data binding is crucial for modern applications, especially in business contexts.
00:07:27.330 We must ensure that input fields maintain a live connection to the underlying data models.
00:07:34.950 With that in mind, let’s explore how we can keep components synchronized with models.
00:07:41.210 This allows user inputs to directly reflect changes in the data model in real-time.
00:07:48.630 In conclusion, each of these frameworks has its strengths and weaknesses.
00:07:55.940 Choosing the right tool depends on your specific project requirements and personal preferences.
00:08:02.120 I hope this presentation helps you understand the current landscape of Ruby desktop development.
00:08:09.690 Thank you for your attention. I am open to any questions you may have.
00:08:16.470 Let’s discuss your thoughts on the frameworks and their applicability to your projects.
00:08:22.610 Feel free to share your experiences and any challenges you've faced with desktop development.
00:08:29.790 It's always enlightening to hear different perspectives in our community.
00:08:36.900 Thank you again for your time today. Let’s keep the conversation going!
Explore all talks recorded at MountainWest RubyConf 2011
+13