Comments (9)
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.
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.
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.
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.
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.
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.
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.
Agreed. Closing in the hopes of keeping one more yak warm in this cold Chicago winter.
from metalicious.
from metalicious.
Related Issues (20)
- Add data model for GIS data
- Add field for "Published to Data Portal" HOT 10
- Add list of all available data sources HOT 5
- Add field for "Data Types"
- Business function pages should list databases HOT 1
- Business function pages should list databases in sortable tables HOT 1
- Tying metalicious databases to data portal datasets HOT 2
- No CLA
- Importing databases using extracts from DB reverse-engineering programs HOT 1
- Data previews? HOT 1
- ETL scripts HOT 3
- Complete contributing.md documentation
- Document building and zoning data systems
- Document file-format for upload to Metalicious
- Create documentation in ReadTheDocs
- Missing create/assigning user type in README
- Metalicious_DB.sql: Procedure Definer
- Show relationships between tables
- Allow attachments
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from metalicious.