Giter Club home page Giter Club logo

Comments (9)

derekeder avatar derekeder commented on September 15, 2024 1

years later, I realize that I did not apply the term 'yak shaving' properly in this context. still, it was not a good idea to rewrite an entire codebase.

anyways, RIP metalicious. it was a beautiful dream

from metalicious.

dchelimsky avatar dchelimsky commented on September 15, 2024

FYI - restructuring aside, there are a little over 5k lines of PHP to convert:

$ cloc .
      89 text files.
      89 unique files.
      46 files ignored.

http://cloc.sourceforge.net v 1.60  T=0.44 s (181.9 files/s, 64086.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
CSS                             10           1885            183          10581
PHP                             52            693            864           5173
Javascript                      16           1067            737           4135
SQL                              1            103           1347           1309
HTML                             1             14              8             92
-------------------------------------------------------------------------------
SUM:                            80           3762           3139          21290
-------------------------------------------------------------------------------

from metalicious.

gregsanders avatar gregsanders commented on September 15, 2024

I'd be interested to hear the rationale for porting the app from PHP to Ruby. I can make some guesses, but would like to get at exactly what the issue is. Is it a feeling that the Ruby language in itself is superior? Or wanting to have the code structured in a stricter MVC pattern? Or a perception that more developers are working in Rails these days? Definitely interested to drill down into this issue, thanks a lot for raising it.

from metalicious.

dchelimsky avatar dchelimsky commented on September 15, 2024

In fairness, it's been several years since I've worked with PHP, so I'm comparing Ruby in 2013 to PHP in 2005. My first thought was "I'd contribute to this, but not in PHP because I don't want to go back and remember how that works".

That said, yes, it's about language preference, it's about structure enabled by the language (not specifically MVC), and it's about increasing the number of developers who would be inclined to contribute. It's also about testability, which is made easier in Ruby IMO (again, comparing to PHP ca. 2005).

Personally, I'd prefer Clojure ;)

from metalicious.

gregsanders avatar gregsanders commented on September 15, 2024

Thanks, that's good information. I understand the impulse to port an application to your favorite language. I personally know of 2 people who (separately) re-wrote the Python-based CKAN open data platform for PHP. If it had been written in PHP, no doubt someone would have re-written it for Python or Rails. IMHO that's all part of the fun.

I'm thinking the best approach is to worry less about the language and more about the app structures. What happens if we re-structure the current Metalicious app using a more stringently MVC-based framework (think Laravel or Yii)? MVC is the anchor for Django, Rails and MVC.NET. If we also focus on the Active Record pattern and convention-over-configuration, then it seems to me that anyone wishing to port the app to another MVC-based framework would have a relatively easy time of it.

It's even possible that someone who loves Rails or Django might even be persuaded to get involved, despite the PHP, because it would all be laid out in familiar patterns. Thoughts, anyone?

from metalicious.

dchelimsky avatar dchelimsky commented on September 15, 2024

I'm thinking the best approach is to worry less about the language and more about the app structures.

Seems valuable to me.

What happens if we re-structure the current Metalicious app using a more stringently MVC-based framework (think Laravel or Yii)? MVC is the anchor for Django, Rails and MVC.NET. If we also focus on the Active Record pattern and convention-over-configuration, then it seems to me that anyone wishing to port the app to another MVC-based framework would have a relatively easy time of it.

Yes, MVC is the anchor for those frameworks, but I have yet to see a Rails app that doesn't have a bunch M leaking all over its V and C, and I think that's largely due to ActiveRecord (the pattern, not just the lib). I'd much rather see a pattern that decoupled data from datasource e.g. Repository.

That said, I think moving toward some conventions, and the conversation around that move, would be useful.

from metalicious.

derekeder avatar derekeder commented on September 15, 2024

There was an opinionated blog post on the OpenShift blog about this very topic of language/framework selection for government apps: https://www.openshift.com/blogs/hey-civic-hackers-how-about-leaving-the-ninja-skills-at-home-and-building-really-useful

I don't necessarily agree with all of the author's points, but he does raise an interesting issue of picking frameworks that government IT have the skills to support. At the end of the day, they're the ones responsible for keeping the app going, so the choice should be made with that in mind.

That being said, porting a recently launched and working app to another language sounds like yak shaving to me.

from metalicious.

dchelimsky avatar dchelimsky commented on September 15, 2024

Agreed. Closing in the hopes of keeping one more yak warm in this cold Chicago winter.

from metalicious.

derekeder avatar derekeder commented on September 15, 2024

😉

yak-shaving-day_480x360

from metalicious.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.