On website there are programming languages, statements about them and voting that associates languages with statements. In particular, there are statements: "This language is built on a small core of orthogonal features" "This is a mainstream language" Why they are so opposed to each other? Is being incoherent, history-encumbrant, ridden with extra special cases a must for being popular, "mainstream" programming language?
Maybe is it similar reason as why beautiful and coherent artificial natural languages (like Esperanto) are not that popular? There are three reasons why you learn a natural language:As it happens, the languages you'd learn under point 3 are ususually not spoken in public or at home, and are not taught in school in place of French or Spanish. Therefore, they are all very niche.
Oh wow, so A and B seem to have some correlation. Does A cause B? Or the other way round?
Or are there other factors that I didn't consider?Your question seems to ask if a programming language can only become mainstream if it is not orthogonal. This is misleading.
Languages change over time. Their standard library gets reworked. New syntax is added.
Object orientation is made available. Lambda expressions start looking useful. But closures and objects can be implemented in terms of each other, so why would I need both?
Why would I want generics or other type system additions? I clearly do not need themA language that does not evolve is probably dead.For some languages, practicality is of utmost importance.
It doesn't matter if there are five or more screwdrivers in my toolbox, because not all screws are equal. An experienced user will pick the right one for the situation.Other languages strive to be more minimal and/or elegant.
This can be useful for didactic purposes, or in research settings. Small languages are easier to port. They are often useful, but not always when you have to ship your application yesterday.
A language that tries to be relevant tomorrow has to keep evolving, and include new concepts. For example, the C standard is slowly but constantly being reworked. Each release of Java is a step forward.
C# is often ahead of the pack as far as mainstream languages go. A language like SML or Smalltalk has no serious ambitions to go mainstream.A language that already is widely used has to stay backwards compatible, or it will loose market share.
Features that were there yesterday have to stay available even if a better alternative was introduced. In Java, type parameters are erased during compilation for back-compat. In PHP, the main namespace is riddled with dangerous and deprecated functions that can't be removed without breaking a good part of the internet.
I would suggest that successful languages tend to become less orthogonal over time, not only that less orthogonal languages tend to become mainstream more easily. However, there is no clear causation because there are more factors to consider.If I look through the list of languages you linked to we see as orthogonal languages: Scheme and Lua had minimalism as a design goal, academic languages like Coq, Haskell, SML are less useful for day-to-day programming or difficult to learn, and some languages like Forth and APL are barely used any longer.
The less orthogonal languages are all quite mainstream, or have a long history. Fortran and COBOL are ancient, but still have a strong niche. Languages like PHP and Shell grew beyond what they where intended to do.
Some languages are explicitly pluralistic, e.g. Perl and its descendant Ruby.
The C# language is in direct competition to Java and tries to score with better features. Some languages have a religious commitment to backcompat, e. g.
C or Perl. OTHER ANSWER: Because reducing the feature set of a language requires a compromise. Taking a feature out of the language means either:the language no longer has that feature, so people who need/value that feature will not want to use that language (aside: this is the reason I've never tried golang.
while I like some of their ideas I find exceptions too useful to abandon), orthe feature must be implemented as a library within the language. But it is hard to design a language such that a wide variety of useful features can be implemented without compromising on syntax, and syntax is critical in gaining market share (if it wasn't, we'd all be using LISP by now).LISP is a good case study: it is built on an extremely small set of basic primitives, and those primitives can be combined and recombined in very useful ways, such that just about any language feature you can think of can be (and probably has been) implemented in LISP somewhere.
Unfortunately, in order to become flexible enough to achieve this, LISP has compromised on almost all syntactic niceities, leaving a language that (to put it bluntly) only hardcore hackers can stand using. I'm not suggesting that this is the only way to make a small core language do useful and interesting things, but certainly it is harder to do it without making such compromises. And given that language success is a hit-and-miss kind of thing, ruled by primarily by what developers are trying to do that their existing languages don't do nicely and a new language might do better, the size of the core doesn't really figure much in whether a language becomes popular.
And because making a nice language with a small core is more difficult than sacrificing either of those features, fewer such languages are made, which makes it substantially less likely (due to the law of averages) that they will gain traction.
Copyright © 2021 NOYAFA | Sitemap
{"site":{"site_id":3160,"site_type":1,"site_domain":"noyafatester.com","domain_mode":2,"original_domain":"noyafatester.com","language_code":"en","is_init_domain":0,"is_shop":false,"is_ssl":1,"lang_prefix":"/","animate_name":"none"},"page":{"page_id":25224,"page_type":"ai_article_detail","page_code":423,"page_url":"/ai-article/why-mainstream-language-is-so-opposed-to-built-on-a-small-core-of-orthogonal.html","page_source":"","allowAnimat":0,"content_id":21,"content_type":5,"detail_thumb":"https://img.yfisher.com/1617351473140.jpg","detail_title":"Why Mainstream Language Is so Opposed to Built on a Small Core of Orthogonal Features?","moq":1},"translateList":{"A new item has been added to your Shopping Cart":"A new item has been added to your Shopping Cart","Account is not exists":"Account is not exists","Add a review on the product":"Add a review on the product","Add to":"Add to","Add to Cart":"add to cart","all":"all","All Orders":"All Orders","Already commented":"Already commented","Are you sure you want to delete it?":"Are you sure you want to delete it?","Are you sure to delete the selected items?":"Are you sure to delete the selected items?","Awaiting Payment":"Awaiting Payment","Awaiting Shipment":"Awaiting Shipment","account security":"account security","address book":"address book","Buy":"Buy","Buy Now":"Buy Now","Cancel":"cancel","Clear":"Clear","Clear Search":"Clear Search","Confirm":"Confirm","Choose a country":"Choose a country","Choose Coupon":"Choose Coupon","commodity payment":"commodity payment","Completed":"Completed","Condition not met":"Condition not met","Confirm password is inconsistent with new password":"confirm password is inconsistent with new password","Congratulations":"Congratulations","Congratulations! You are got a coupon.":"Congratulations! You are got a coupon.","Congratulations! You are got all coupons.":"Congratulations! You are got all coupons.","Continue Shopping":"Continue Shopping","Copy the code and use it directly in the shopping cart.":"Copy the code and use it directly in the shopping cart.","Coupon List":"Coupon list","Country":"Country","Design customization":"Design customization","Do not use any discount":"Do not use any discount","Earliest":"Earliest","email":"email","email format does not match":"email format does not match","Estimated Delivery Time":"Estimated Delivery Time","expired":"expired","Find Parts":"Find Parts","Free":"Free","Free Quote & Information Request":"Free Quote & Information Request","Free Shipping":"Free Shipping","for order over":"for order over","Get":"Get","Get coupons":"Get coupons","Get discount":"Get discount","Get it":"Get it","Get it after logging in and use it in the shopping cart.":"Get it after logging in and use it in the shopping cart.","Go to Page":"Go to Page","Highest Price":"Highest Price","Hot Sale":"Hot Sale","home":"home","Incorrect form format":"Incorrect form format","inquiry":"inquiry","Loading":"Loading","Lowest Price":"Lowest Price","Match Product":"Match Product","Merchant Free Shipping":"Merchant Free Shipping","Most Popular":"Most Popular","my account":"my account","my coupons":"my coupons","my inquiry":"my inquiry","my orders":"my orders","my reviews":"my reviews","my wishlist":"my wishlist","name":"name","Newest":"Newest","No Quotation":"No Quotation","No time limit":"No time limit","Not deleted":"Not deleted","not valid yet":"not valid yet","Off":"Off","Offers and Discounts":"Offers and Discounts","ok":"ok","optional":"optional","Order over":"Order over","order notes":"order notes","Password contains at least numbers and letters length should be 6-20":"password contains at least numbers and letters length should be 6-20","Password is invalid":"Password is invalid","Password length should be 6-20":"Password length should be 6-20","Paypal":"Paypal","paypal payment":"paypal payment","personal info":"personal info","Please click ’click to continue’ to retry.":"Please click \"click to continue\" to retry.","Please enter a valid email address":"Please enter a valid email address","Please enter the verification code":"Please enter the verification code","Please login in first":"Please login in first","Please select attribute":"Please select attribute","Please select country/region":"Please select country/region","Please select superior":"Please select superior","Please select the number of ratings.":"Please select the number of ratings.","read more":"read more","Region":"Region","Register Success":"Register Success","Sale ends in":"Sale ends in","Save in wishlist":"Save in wishlist","Search":"Search","Shipping":"Shipping","Shipping Address":"shipping address","shipment successful":"shipment successful","Size guide":"Size guide","Small Text":"Small Text","Small Title":"Small Title","Sort By":"Sort By","State/Province/Territory":"State/Province/Territory","Successfully delete":"Successfully delete","Successfully save":"Successfully save","The coupon code has been copied and used in the shopping cart.":"The coupon code has been copied and used in the shopping cart.","The subscription is successful, thank you for your participation":"The subscription is successful, thank you for your participation","The user center is out of service. Please contact customer service":"The user center is out of service. Please contact customer service","This is Text":"This is Text","This is title":"This is title","This transaction has failed.":"This transaction has failed.","Time to shop":"Time to shop","To be commented":"To be commented","Total":"Total","the content can not be blank":"the content can not be blank","Update password success":"Update password success","Upload Image":"Upload Image","Upload up to 6 pictures":"Upload up to 6 pictures","uploading":"uploading","used":"used","user center":"user center","Validity period":"Validity period","valid now":"valid now","View Cart & Checkout":"View Cart & Checkout","Welcome to the website":"Welcome to the website","Western Union":"Western Union","Write a Review":"Write a Review","You are got a coupon.":"You are got a coupon.","You haven’t chosen an address yet":"You haven't chosen an address yet","You haven’t selected a product yet":"You haven't selected a product yet","Your rating":"Your rating","Your review":"Your review","Your shipping address error":"Your shipping address error"}}