Talk:Inner-platform effect
This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||||||
|
Citations required
editIf you're a really really BAD programmer, perhaps we could have some of your work as example code so we can have citations. I don't know maybe you're a college professor and your students just can't stop using XML as a database.... .. or even an epic student of yours who keeps biting off more than he can chew and decided to program the entire relationship model in the client.. no small feat that lol...yeah this is a rant article DarkShroom (talk) 13:40, 14 November 2012 (UTC)
NPOV?
editThis article reads like a rant, especially statements like this: "Such designs rarely make their way into real world production systems, however, because performance tends to be little better than abysmal"
1. It would be interesting to see the author struggle in vain to find a cite for such a claim. 2. Have you ever worked in a production environment? "Abysmal" is the norm. —Preceding unsigned comment added by 24.73.197.58 (talk) 20:56, 1 February 2011 (UTC)
Elaborate on second system
edit- I think that "inner platform effect" is actually slightly different from second system, though close. Specifically, it's less concerned with visible features as with internal engineering that needlessly and poorly duplicates existing tools (i.e. duplicates the existing platform instead of just using it). So someday someone may want to elaborate on that distinction instead of just redirecting.
--RH
Emacs link appropriate?
editI noticed the Emacs link in the related pages. It made me laugh out loud, but should it really be there?
Notable
editIs this notable? The only examples are from the site of the person who seems to have coined the term @ thedailywtf.com. No other references, wouldn't this constitute original research? —Preceding unsigned comment added by 159.53.46.141 (talk) 18:01, 4 February 2009 (UTC)
- While the article does need more references, I have seen this in the real world with companies I've worked with that create their own scripting language. At some point, things get out of hand, and developers of the language just start tossing everything bit of functionality (from whatever variety of languages they prefer) in. I've also seen this in my own code when I've placed a wrapper around a legacy library. I starting creating methods to emulate the base library, even though they weren't required, just 'to cover my bases' so to speak, when direct calls would have been just fine and the functionality itself wasn't even necessary. It's amazing how tempting it can be to just lob functionality in just for the heck of it. It's almost addictive! --Daydreamer302000 (talk) 13:09, 10 June 2009 (UTC)
- I've just re-tagged this only to have it removed again. Notability is not asserted by people saying so in edit summaries; the article needs to indicate the notability of the subject through the use of reliable sources. I'll be re-tagging on my next pass; the next step will be an AfD, as we have too many articles on neologisms from the Daily WTF. Chris Cunningham (not at work) - talk 20:00, 3 May 2010 (UTC)
- ...And indeed, having looked at one of the references, it seems like the proliferation of this junk is due to a very common anti-platform on Wikipedia: WP:WAX, where the existence of some random piece of cruft elsewhere is used as an argument for starting whole new islands of cruft. This article appears to be a direct consequence of that line of thought. Chris Cunningham (not at work) - talk 20:10, 3 May 2010 (UTC)
- The two best sources for this are already noted, and in their own separate articles: JWZ's emacs comment and Greenspun's Lisp comment. As an instance of where it occurs most frequently, it's a close call between EAV systems and the various forms of recycled SQL injection that pass for creative design in some older organisations with rancid legacies. Andy Dingley (talk) 20:37, 3 May 2010 (UTC)
- So it's synthesis; using disparate sources which don't mention this subject at all (both of them predate its coining by over a decade) to advance an original theory (in this case, one of the thousands of cute terms made up in the name of humour by The Daily WTF). This is fine for someone's blog, but not for an encyclopedia. I'll be taking this to AfD on my next pass. Chris Cunningham (not at work) - talk 08:57, 4 May 2010 (UTC)
- Oh hell yeah is it notable! This is a giant problem in the software engineering world, that is way too little known. (Anti-patterns in general are way too little known.) I’ve seen it many times in my career, and especially those “Enterprise Consultant” types never learn from it and come up with it again. I had to fix and fight countless of those. And there are so many example, you can’t even count them. The web-dev and Java business world is full of them. XSTL, Typo3, tons of scripting languages implemented in scripting languages, like TypoScript or XSLT, frameworks over frameworks over platforms on Java, etc, etc, etc. We have a saying here at my company: There are two kinds of software developers: Those who know and avoid it. And bad developers. —Preceding unsigned comment added by 188.100.192.146 (talk) 05:24, 28 August 2010 (UTC)
- I agree with the last (also anonymous) comment. I am not a wikiepdia editor so I don't know the rules for "notability" in force here, but I have seen this pattern countless times in real world software development; incidently, in a completely different domain: hardcore numerics. Needless to say, whenever you encounter it, you're in for BIG trouble. I've also heard this spoken about with this term ("inner platform effect") many times with many different developers. The original source for the term probably is thedailywtf website; but realize that this is one of the most popular website dealing with development issues, and that this particular inner platform effect post is one of its most notable posts. The term definitely caught on; this is not very surprising considering the seriousness of this particular problem, and the frequency in which it occurs.128.112.122.172 (talk) 23:13, 28 January 2012 (UTC)
Good side
editI think this article deserves more attention as it may explain philosofical aspects of how many systems evolve. The article indeed promotes mainly the negative side. I suggest, please add and/or fix:
However, on the light side, this tendency allows systems to create dynamic sub-systems, and while the dynamic ones ( on top of a host system, the inner ) performs slower, it leads to wider opportunities as it usually creates a framework for interaction with other systems, and being a platform, this framework is a door for new communities. So, in a way, it aligns with aspects in game systems, a game, written in a platform, offers an inner-platform as it has an environment, rules, goal, and participation. An inner-platform has also another positive side, to the platform itself. As the inner-platform becomes more complex ( as it aims to has it's own inner-platforms - think fractals ) the lower layer, the host platform, bas to evolve in aspects such as performance and also its ability to run the inner-platform using sandbox models. While a host platform may evolving in terms of providing the inner with access to privileged functionality, it evolves to do this in a way that is safe to its layer and its host layers, if any -- the concept of protection.
Smarty as an example
editI believe the paragraph on Smarty is in poor taste, and not necessarily an example of the "inner-platform effect". Whether your view should have a complete logic system is an opinion based matter. 173.247.201.130 (talk) 01:02, 10 January 2012 (UTC)
- Agreed. I don't even like Smarty but it doesn't seem to be an example of the anti-pattern. It could be described as an inner platform, yes, but it isn't the negative anti-pattern sense of the concept. The citation for Smarty being bad (http://www.codeassembly.com/Why-template-systems-like-smarty-are-useless-and-sometimes-bad/) is particularly egregious; the suggestions for how not to use Smarty are far more damaging than Smarty itself. 173.218.142.90 (talk) 16:47, 28 April 2012 (UTC)
- Agreed. Given that the qualities necessary to satisfy classification as an Inner-platform are, in the case of Smarty, substantially configuration-dependent[1], and that there is no requirement that any majority of PHP features be exposed or used, I wonder if the original paragraph's author would mind returning and clarifying his/her assertion (and filling in the missing citation-needed reference); or simply redact what seems to be an unfounded opinion. It is perhaps useful to note that the relationship Smarty shares with PHP is a complex one: Smarty is to PHP as JSP is to Java. For example, JSP templates are just-in-time compiled into .java source code; using a tag extension system, all the features of Java language can be exposed.[2]. Likewise, Smarty pages are just-in-time compiled into .php source code[3] [4]; a similar extension system is what actually determines which features of the underlying PHP language are available to templates; or in other words, even if Smarty were somehow an example of an Inner-platform, it would seem more objective and useful to instead identify all configurable, template-backed code-generation systems (that can be arbitrarily reconfigured) as such. — Preceding unsigned comment added by 98.243.17.28 (talk • contribs) 05:44, 11 November 2012 (UTC)
- I think the best argument for Smarty uniquely qualifying as an example of inner-platform is that Smarty is a templating engine written in PHP, which is also a templating engine. The case of PHP vis Smarty is very different from the case of Java vis JSP in this way. It's more like if somebody had written a Smarty-like templating engine in JSP. This isn't to say I'm certain this argument is good enough, but I wanted to have it out there. —chaos5023 (talk) 06:38, 18 November 2012 (UTC)
- How are these relationship vectors not virtually identical:
- the "platform" that runs "JSP platform" is a Java Servlet; it compiles .jsp templates into new Java Servlet source code;
- the "platform" that runs "Smarty platform" is a PHP script; it compiles .tpl templates into new PHP script source code;
- ... in either case (JSP or Smarty), the produced source code is ultimately ran to dynamically generate output (eg: HTML).
- Does this not describe a same platform-platform relationship? The article implies this relationship is "inner-platform effect" -- it would not matter if you swapped JSP in for Smarty and Java Servlet in for PHP script. Consider also that either templating platform was designed to separate things (ie: business logic vis presentation). In other words, Smarty's similarity to PHP is besides the point. Smarty was created to be usefully-separate from PHP (and whether a thing is useful or not is largely a matter of taste). I again vote we remove article's Smarty paragraph outright -- if nothing else it's a terribly-biased example. — Preceding unsigned comment added by 98.243.17.28 (talk) 08:02, 24 November 2012 (UTC)
- How are these relationship vectors not virtually identical:
- I think the best argument for Smarty uniquely qualifying as an example of inner-platform is that Smarty is a templating engine written in PHP, which is also a templating engine. The case of PHP vis Smarty is very different from the case of Java vis JSP in this way. It's more like if somebody had written a Smarty-like templating engine in JSP. This isn't to say I'm certain this argument is good enough, but I wanted to have it out there. —chaos5023 (talk) 06:38, 18 November 2012 (UTC)
Companies at Facebook
editI see more and more companies advertising to retrieve information about them from a site inside Facebook instead from their real web homepages. Then Facebook starts to resemble the functionality of information retrieval that the web already has. Maybe this can be discussed as an example? — Preceding unsigned comment added by 85.5.149.19 (talk) 23:29, 4 June 2012 (UTC)
Changes reverted
editI just reverted some changes. This article is obviously a bit incendiary, but just neutering it is not a good solution IMHO. --4368 (talk) 04:46, 12 October 2012 (UTC)
- Little secret: There is no such thing as a ”neutral” point of view. That’s like saying “There’s an absolute coordinate system for the universe.”, which for Wikipedia’s admins is always followed by “And obviously its center is my own position”. — 85.197.55.21 (talk) 16:13, 22 February 2014 (UTC)
One solution might be to explain the phenomenon in objective terms (instead of saying it has to be a bad thing), and then have a section for criticism and possibly a section for when using an inner-platform is appropriate. --4368 (talk) 04:50, 12 October 2012 (UTC)
MediaWiki is an example
editI've always considered MediaWiki to be a very good example of the IPE; should this perhaps be mentioned? — Preceding unsigned comment added by 109.176.216.201 (talk) 12:07, 13 June 2013 (UTC)
- If there's a third-party citation that it's an important one ... - David Gerard (talk) 13:11, 13 June 2013 (UTC)
- LOL! Double-joke combo! Accuracy bonus: 140%! XD — 89.0.248.224 (talk) 12:52, 30 October 2013 (UTC)
- Yes, YES, it should absolutely be mentioned. But that’s like saying God doesn’t exist inside the Vatican. ;) Nobody cares for outside perceptions of reality, because theirs is seen as the only right one / ghospel, because they built their whole world view and acceptance of themselves on top of that cloud. So they ignore rationality (aka “original research”, as they call it), don’t trust your word (Studies have shown that “He’s not part of the cabal! DELETE!” is hard reality here), and demand “citations” by “reliable, trustworthy third parties”. Where that somehow always includes those sources that happen to conveniently fit their personal world
viewsdelusions. So TL;DR: Good luck with that! ;) — 89.0.248.224 (talk) 12:52, 30 October 2013 (UTC)- Don’t worry. It will be mentioned, as soon as Wikipedia is replaced by a distributed authority-free P2P web-of-trust-based knowledge base that can’t be controlled by anyone anymore. I’m working on that already. But I’d like some motivating competition. :) – 85.197.55.21 (talk) 16:11, 22 February 2014 (UTC)
More examples of the inner-platform anti-pattern:
edit- TypoScript = just a shitty PHP implemented in … PHP!! – 89.0.248.224 (talk) 12:23, 30 October 2013 (UTC)
- MediaWiki = ditto, but s/PHP/HTML/g. — 89.0.248.224 (talk) 12:54, 30 October 2013 (UTC)
- KDE Plasma (and anything similar to it) = just a shitty remake of a window manager with small applications. – 89.0.248.224 (talk) 12:23, 30 October 2013 (UTC)
- Firefox, Chrome = “Nice OS [actually… no]… But it’s a shame it doesn’t have a decent browser!” ;) … Hell, nowadays there actually IS a FirefoxOS and a ChromeOS, FFS!! Cognitive dissonance level: OVER 9000! (Assuming, with them calling themselves developers, they know the anti-pattern.) — 89.0.248.224 (talk) 12:23, 30 October 2013 (UTC)
- Emacs = Ditto, but replace “browser” with “editor”. (This maybe is the first big example of the anti-pattern.)
- Markdown, Textile, etc = Just a markup language like HTML, but with removed functionality to make it worse. — 89.0.248.224 (talk) 12:23, 30 October 2013 (UTC) — Preceding unsigned comment added by 89.0.253.108 (talk)
- [add your examples here] – [your sig]
Citations not needed about using entity-attribute-value to bypass the RDBMS
editI think it's pretty much obvious to anyone who has ever used a SQL database professionally that storing all the data into one big 3-column table is a terrible and pointless misuse. The "[citation needed]" can be safely removed from that paragraph. 82.225.162.56 (talk) 20:08, 8 March 2014 (UTC)
Start over?
editThis strikes me as a valid topic, but article is poorly written, and lacks focus and references. The problem of practitioners in any discipline assuming the problems of their clients are the same as their own is notable and deserves explanation, but the article reads more like a meandering personal essay than an encyclopedia entry. Further, it's not clear how some examples illustrate the main idea. It seems more like a list of personal pet peeves. At least one of these critiques seems to reflect a problem with the author misunderstanding of the subject rather than a problem with the subject. The lack of citations amplifies the other problems.
EAV Example Inappropriate
editIt's become pretty common for new non-relational data stores to use off the shelf SQL database managers as persistence layers, not because they are relational, but because they already have the mechanisms required to implement the alternative model. ZopeDB can use MySQL, IIRC Mozilla's implementation of Indexeddb uses Sqlite3 (which is a bit ironic), etc. This doesn't seem to bother anyone. I don't know why, but in the last couple of years it's become fashionable to single out implementations of the EAV model built on SQL database managers for criticism, presumably because the critics do not understand EAV at all, (and perhaps the relational model all that well as it seems possible that EAV could be used as an alternative representation of relational data, but that may be a stretch.)
Applied appropriately, the EAV model can be extremely useful, particularly for data collection in clinical and laboratory settings, or for serialization and it's turning out be useful in other settings where it's important to track the changes in values over time (see Datomic). Also, the semantic web and RDF involve EAV modeling. It is a tool that is well suited to some jobs and not to others. It doesn't make much sense to me to criticize a paint brush for not being a hammer.
The Wikipedia article on EAV explains it pretty well: https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model
(Just to be clear, I'm not suggesting that an EAV table can be tossed into a conventionally structured SQL database and be treated like any other table. It can't.)
Further, it's not clear to me how this illustrates how developers can sometimes design to meet their own needs rather than those of their clients. I suppose EAV data could be used as an intermediate format when parsing large amounts of unfamiliar unstructured data into structured form, and it might make an OK temporary small data store for prototyping, and if there's no follow through those temporary constructs could wind up in a release product, but that strikes me as a different kind of problem.
Summing up, I think that unless it can be tied in more effectively and much better supported by references that bit should go because it is both arguably incorrect, and arguably irrelevant.
Ericfluger (talk) 16:19, 31 May 2015 (UTC)
Afterthought: I may have given this more space than it deserves on it's own merit, but I think it illustrates just how subjective the overall topic can get, and the need for clear tie-ins and solid references.
Needs better explanation of basic concept.
editThe basic idea seem to be that developers sometimes base new products on the tools or constructs they use themselves. Much of the article seems to focus on problems this can cause, but I'm not sure that the consequences are always negative. Most modern word processors have been influenced by EMACs to some degree, the spreadsheet was a way of making two dimensional arrays usable by non-technical end users, etc. I don't see those as negative consequences. So are we talking about a general phenomenon that can have either helpful or unhelpful consequences, or a mix of both, or are we talking only about when this phenomenon becomes a problem. If the latter, how do we determine what's a problem?
It also seems to me that whether applying familiar tools or constructs to a new application is helpful or not depends a lot on the use case, and that the notion of antipatterns may be a bit too broad. Further, parts of the article and parts of this discussion seem to be about antipatterns in general rather than inner-platform effect in particular. There seems to be some criticism here of yanking a technique or construct out one context and tying to force fit it into another, which granted can be a huge problem, but is it the same problem?
Of course that perception may reflect a poor understanding of the subject on my part, but that would illustrate my point wouldn't it?
Subjectivity Minefield
editSorry if I'm repeating myself a bit here, but...
while I find the topic notable and quite intriguing, it also strikes me as very difficult to stay objective about.
Some examples of anti-patterns listed in this discussion strike as off-base. For example, I disagree with the suggestion that wiki-style mark-up is a dilution of HTML and somehow worse. There have been various types of mark-up since the earliest days of computer typesetting, mostly with different goals, different requirements, and different degrees of ease of use for particular user bases. HTML is very versatile, but not necessarily a best fit for everything and in an application aimed at a broad audience supporting mark-up that is both easier to read and to write makes sense to me. In fact I would say that requiring naive end users to write in HTML (or a subset deemed to be easier) might be a better illustration of Inner-platform effect than say Markdown, reStructured text, etc., which could be regarded as departures from the inner-model to better fit the use case.
But that's me. I have my reasons and I'm sure the authors of the comments I'm criticizing have theirs. I'm just pointing that this is a matter of opinion that informed people can reasonably disagree about, and I doubt it will be the only one.
I'm not suggesting dropping the topic, but I am suggesting that the topic needs some special caution re NPOV.
Ericfluger (talk) 17:15, 31 May 2015 (UTC)
I 100% agree. --91.176.168.214 (talk) 10:08, 11 June 2018 (UTC)
Original Research
editThis article constitutes original research.
Yes, the phenomenon is "real." I have programmed for 35 years, and I can say, "Yes, this is something that happens, exists, is occasionally noted on."
However, developing an school of knowledge about this reality is NOT the work of Wikipedia. That is work for people who study the phenomenon of the programming, outside of Wikipedia. Conceptual development need to be developed outside of Wikipedia, rather than in Wikipedia. The temptation, on my part, to start developing distinctions and make comment on other opinions here is high. But I recognize that doing so, while fun, is not the same as creating an online encyclopedia.
This activity would be much better suited for Ward's Wiki (C2), and the for publications in the computer programming or computer science world, than on Wikipedia. Once the language and network of ideas are agreed upon and well established in the programming world, then I think it makes sense to have a Wikipedia article on it.
In the meantime, I think this article should be deleted.
Consider SAML
editClose Relationship to Conway's Law
editConway's Law should be in See Also. I'm going to add it. Consider discussing the relationship. TheodoricStier (talk) 16:02, 25 October 2023 (UTC)