If you are reading this document, that means that you are interested take part of the first round of the "What is wrong with Ruby?" project
I just would like to ask you during your answers to mind the following:
- These questions are wide and sometimes vague intentionally, I want to start with an open bracket and give the ability to you to write what you feel like.
- All these questions are optional, feel free to answer whichever you prefer to and skip what you want to skip.
- If you want to add comments or thoughts outside the scope of these questions please feel free to do so.
- Please make sure to use as beginner friendly language as you can and maybe metaphors to express your opinions as well.
- Would you be okay with sharing your answers in public formats like presentations, blog posts and so on?
- Yes absolutely, feel free to quote me on my answers
- Yes, feel free to use my answers but anonymously please
- Yes, if you want use it in an aggregated format like statistics or so
- No please keep it to yourself and use it only for inspiration
- Which ruby implementation do you work on?
- How long have you been doing so?
- Which gem do you work on? for how long?
- Do you have any metrics of how widely spread the gem is?
- Which event/initiative/community do you run or you're involved in running?
- Is it a ruby specific event?
- how long have you been doing that?
- How long did you work with ruby?
- What is your choice of the new technology?
This section focuses solely on performance aspects of Ruby.
- How would you define good or bad performance to a junior?
- Do you believe Ruby as a programing language has an inherent performance problem? Any good examples? thoughts or comments? (If the answer is no, why do you think ruby is famous for being slow?)
- What is your take on Ruby 3X3 initiative by the Ruby core team?
- What do you think of the introduction of the new just in time compiler introduced in MRI 2.6?
- Was MRI performance one of the main motivations behind working on an alternative implementation of Ruby for you?
- How does your alternative implementation of Ruby handle what you preceive as performance issues
- What will be your recommended strategy in changes Ruby the language and different implementations can use to achieve better performance?
- Do you have good coverage of benchmarking to your gem?
- How much does performance impact your decisions in the gem maintainance? can you elaborate a bit?
- When selecting talks and programs, how much of emphasis do you put on performance improvements in the ruby sphere?
- What do you think is left as a blindspot in terms of ruby performance improvement in events? Is there a topic you always felt would be useful to have talks about but lacked it(In relevance to performance I mean)?
- How does your new technology stack compare to ruby's single threaded performance? What are the reasons?
- Was performance one of the main motivations for you to do this move? if yes, what do you think ruby can adopt to improve this?
- How much do you think of performance in your day to day life as an engineer?
- How much benchmarking and profiling do you do in your daily work?
- Do you have enough support in terms of resources and tools to successfully benchmark, profile and tune your performance?
- Do you have an example where ruby performance was a bottleneck in terms of performance. If yes how did you handle that?
This section focuses solely on the differentiation between ruby the language and MRI, support of alternative implementations.
- Do you use alternative implementations of ruby in production or just MRI?
- If yes, can you share more insights about your experience?
- What are the difficulties you face in marketing your implementation to be used in production systems? what do you do to overcome this?
- What do you think is the main downside of your implementation in opposition to MRI?
- What do you think is the main advantages of your implementation in opposition to MRI?
- What do you lack from the Ruby core team to make your job easier?
- What about the ruby unified specs?
- Do you have problems with C extensions in existing ruby gems? can you elaborate on that?
- When maintaining your gem, do you often have alternative implementations compatibility in mind?
- Do you use any C extensions in your gem? If yes, why?
- How would you prioritize an issue of compatibility with Jruby or Truffle ruby in comparison to usual issues in the gem behavior with MRI?
- Do you often consider the diversity of ruby implementations when planning your events?
- Do you get many submissions of useful real life projects about alternative ruby implementations?
- How does existing Ruby Alternative implementations compare to your new technology selection? Does it solve any of the problems that motivated you to do the change?
- On what basis do you decide which implementation of ruby to select for your problems?
- How many projects in the past did you use/consider using an alternative implementation of ruby than MRI? can you elaborate more on this?
Often Multicore CPU utilization comes up whenever people criticize ruby, so In this section I focus on two aspects:
- The Existing problems with ruby parallelism (GIL, Lack of default immutability..etc)
- The lack of highlevel, intuitive and easy to use abstractions in the ruby sphere
- Does your implementation enable better support of Multi CPU utilization compared to MRI? Can you elaborate?
- In simple language, how would you explain the GIL in MRI and what alternatives exist to avoid that?
- Do you have an idea of a future language addition that can improve the abstraction of utilizing multicore CPUs?
- Did you face any issues regarding multicore cpu utilization throughout maintaining your gem? Can you elaborate?
- How often do you hear talks about simplifying multicore CPU utilization in the ruby sphere?
- Do you consider that an important topic in your events/Community?
- Does your new technology choice provide better abstractions? can you elaborate a bit about it?
- Was that one of the motivations behind your decision to adopt the new technology?
- Did you face any issues regarding multicore cpu utilization throughout maintaining your codebase? Can you elaborate?
Since ruby 1.9, the language syntax hasn't seen major changes many voices spoke in the past years about features that they feel is missing and features they feel are added without real need.
- Is there a feature you miss a lot in ruby (Syntax wise)
- Was there any recent changes in the ruby syntax that you dislike? care to elaborate?
The main foundation of Open source software is enabling people to engage in discussions and drive big projects together to a direction they all agree on. Unfortunately in reality it is much harder that a wider audience gets really involved in decisions due to many logistical reasons besides other things.
In this section I want to focus on what can we do to ensure bigger, wider and more diverse ruby community contribution in shaping the future of our language as Matz always says.
- Do you feel your opinions and suggestions are usually taken into account by the ruby core team?
- How diverse is your core team and frequent contributers?
- How do you make sure to involve more people from the community with your project
- How do you engage more contributers to your gem?
- what do you think the language core team and implementation teams can do to improve community contribution?
- How diverse is your core team and frequent contributers?
- Do you have any ideas how can we improve community engagement with ruby core team into shaping the future of the language?
- How can we encourage more people to try to contribute to the language?
- How can we increase the diversity of ruby contributers?
- Do you have a better community contribution model in your new technology community? can you elaborate more about it?
- Have you ever contributed to ruby in any aspect? if yes can you tell more about the experience?
- If no, what stops you from contributing to any of the implementations? what can be done to make it easier and more welcoming?
In this section, I would like to address the issue of the strong coupling of the general purpose programing language ruby to a very specific framework Ruby on rails
- Any thoughts on that?
- Do you use rails in majority of your projects? if yes, why?
- Do you find enough support for non rails ruby projects?
- Do you get approached from recruiters looking for "ruby on rails developers"?
For everyone
For Gem maintainers
Performance
This section focuses solely on performance aspects of Ruby.
For everyone
For gem maintainers
For senior ruby engineers
Ruby the language vs the C implementation
This section focuses solely on the differentiation between ruby the language and MRI, support of alternative implementations.
For everyone
For Ruby Implementations contributers
For gem maintainers
For event organisers and community managers
For people who ditched ruby?
For senior ruby engineers
Multicore CPU utilization
Often Multicore CPU utilization comes up whenever people criticize ruby, so In this section I focus on two aspects:
For Ruby Implementations contributers
For gem maintainers
For event organisers and community managers
For people who ditched ruby?
For senior ruby engineers
Language syntactical innovation
Since ruby 1.9, the language syntax hasn't seen major changes many voices spoke in the past years about features that they feel is missing and features they feel are added without real need.
For everyone
Community contribution
The main foundation of Open source software is enabling people to engage in discussions and drive big projects together to a direction they all agree on. Unfortunately in reality it is much harder that a wider audience gets really involved in decisions due to many logistical reasons besides other things.
In this section I want to focus on what can we do to ensure bigger, wider and more diverse ruby community contribution in shaping the future of our language as Matz always says.
For Ruby Implementations contributers
For gem maintainers
For event organisers and community managers
For people who ditched ruby?
For senior ruby engineers
The language coupling with Rails
In this section, I would like to address the issue of the strong coupling of the general purpose programing language ruby to a very specific framework Ruby on rails
For everyone
For senior ruby engineers