PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
21–30 of 90 posts
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#22Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#23Can someone help me understand how is the polyglot approach to software development different from normal software development?
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#24Nothing against this conference but on the "now have", aren't things like OSCON or Strange Loop technically multi-language cross-pollinated programming conferences? Or is the way some of the talks are about joining two languages the unique draw?
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#25Do people really only programme in one language? The simple act of connecting to a database and retrieving data by definition requires knowledge of 2 languages. What I think people do do, is silo themselves onto specific technology stacks (e.g. Microsoft solutions).
The irony is that one of my Java friends told me that he could pick up any language on a need basis, and that I was ignorant for not knowing design patterns such as Factory, Visitor, Observer/Observable, etc.
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#26Earlier quoted context omitted.
I'm shocked you're asking that question. Most programmers are vocational and work for corporations. Most corporations try to force standardization. As a result, most programmers are significantly stronger in one language/platform than any other (whether they have any experience in others or not, which they usually will). As a dumb example, when XMLHTTPREQUEST hit the streets, it was a paradigm shift in enterprise, bu…
Shocked? Really? While I'm certainly stronger in one language I'd say it's quite normal to use at least 3 programming languages daily. As a Unix guy it's even more. If I just want to write a Python hello world I need to know some Python, some Bash, some Vimscript, some Terminal I/O. Many of my projects also have Makefiles, additional bash scripts (which includes SED and AWK besides Bash). Interaction with databases,…
I got fed up with this state of affairs a few years ago and stopped looking for .Net or Java developers and started looking for self-described hackers, assuming that would increase the odds that they had some passion for programming and could/would/had pick up whatever tools they needed for the job. It has worked well.
As an aside, though, especially in countries like India, Brazil, Mexico, Chile, Bulgaria, Poland, and others which are low cost recipients of outsourcing dollars, "software factories" are common, and in places like this it absolutely is common for an individual programmer to literally spend their time all day, every day doing the same one type of thing. Imho, the higher the CMMI number, the worse this gets (the pinnacle is the "just write a function to pass this test. No, it doesn't matter what it's doing or what this software is for. Just pass the test.", where developers on the front line are plug & play cogs who don't even know what they're working on).
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#27Earlier quoted context omitted.
I'm shocked you're asking that question. Most programmers are vocational and work for corporations. Most corporations try to force standardization. As a result, most programmers are significantly stronger in one language/platform than any other (whether they have any experience in others or not, which they usually will). As a dumb example, when XMLHTTPREQUEST hit the streets, it was a paradigm shift in enterprise, bu…
> ironically, a lot of "progressive" corporations end up creating mini-Innovation teams internally with their best & brightest, who are told to "act like a startup" and end up basically creating 75% of all the new stuff ... until it requires an interface to a legacy system and the devs outside the team refuse to cooperate out of fear. I've been in exactly that situation, working on a small 'startup' team inside a lar…
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#28Earlier quoted context omitted.
> ironically, a lot of "progressive" corporations end up creating mini-Innovation teams internally with their best & brightest, who are told to "act like a startup" and end up basically creating 75% of all the new stuff ... until it requires an interface to a legacy system and the devs outside the team refuse to cooperate out of fear. I've been in exactly that situation, working on a small 'startup' team inside a lar…
You need to have a Baord level champion who can steamroller any silos and get stuff done.
This was after I'd moved on, but I'm led to believe that things have improved greatly since that change.
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#29But this "one" language would probably have the power to express its own EDSLs for different domains and problems (like Lisps). So in effect, maybe you could say it's many different languages in one. So why not just use many different programming languages instead of one extensible one...?
Because general purpose programming languages seem to end up feeling too monolithic when considering that they might only be used by you for that one thing. Consider two approaches: have one language that solves problems in domain A really well. Then you want to solve problems in domain B really well. But the first language is not suited for that. So you use a totally different language for that. Maybe it has its own interpreter/compiler/library and specification. Maybe you need to interoperate between these languages. What do you do? Inter-language communication seems to be in a sorry state, if the Unix philosophy of "strings anywhere" is the prevailing philosophy. I guess we're supposed to use Json now, perhaps? Corba is dead. I saw a thick old book about it where I work and didn't feel inspired.
Compare that to having a language where you can express domain B more clearly in the first language. It turns out that there was some friction and ceremony with expressing domain B in the first language, but being able to express this as as EDSL -- maybe by using something like macros -- gets you 90-100% of the benefits of using a totally new language. Additionally, there is less underlying complexity -- you have one language derived from the other using constructs from the original language. And ideally you can inspect and unfold this implementation; go through a few layers of macros, perhaps. Contrast this with having two wholly separate languages with their own runtimes, libraries and what have you.
This might be a philosophy of building layers of languages -- actually, probably more like a tree. Or maybe a DAG if you have several implementations that express the same DSL. Contrast this with several distinct implementations of monolithic languages, which probably have no knowledge of each other (languages tend to end up shallowly similar, but subtle in many many small ways; probably Turing Complete which makes analysis tricky or at least not straightforward, certainly not reliable...). But when looked at in isolation they look simple; hey this language is really good at expressing X. It doesn't have that many user-visible constructs. Simplicity! Only when you look at the bigger picture, you see how much effort and code that goes into implementing software that is subtly different, only to give the feeling of simplicity when looked at more in isolation from the whole overarching system.
Some people will look at you in horror if you suggest using a powerful and expressive language. A language that can effectively express a lot of 'languages'. They find things like operator overloading disgusting, because code should look uniform and it should be "obvious" what it is doing. Then they choose to involve 12 different programming languages on a project, because that is obviously good engineering practice. The right tool for the job! The fact that they have to learn and deal with so many languages is apparently trivial to them. The difference between the semantics and ecosystems of a dozen different programming languages is simpler then learning about and judiciously using operator overloading, I guess.
I am not trying to diminish the need for programming languages -- they seem incredibly hard to design, and the more I read about them the more I get convinced of that. There are ever more considerations that they can choose to care about, potentially at the expense of something else immediately next to it or maybe something far away. It doesn't seem like the ones who are designing them are close to converging on designs that express many of the problems that programming languages can/should care about. I look forward to seeing more language (designs) -- hopefully ambitious ones. :-)
tl:dr; I should learn a Lisp. Code truly is data, or it should be. But not even Lisp is able to do everything with sufficiently many macros, it seems.
Re: PolyConf 2015 – A multi-disciplinary conference for polyglot programmers
#30Shouldn't programmers be polyglot by default . It's like saying there is a conference for golfers who play with more than one club!
I'm sure even your golfer might be interested in attending a masterclass that only covered putting.