Open and closed platforms

This is a blogpost that I had planned a very long time (4-5 weeks) ago, and I’m only getting down to write it now. So my apologies if the quality is not as good as my blogposts usually are. 

Many of you would have looked at the title of this blogpost and assumed that the trigger for this was the “acquisition” of Joe Rogan’s podcast by Spotify. For a large sum of money, Spotify is “taking his podcast private”, making it exclusive to Spotify subscribers.

However, this is only an “immediate trigger” for writing this post. I’d planned this post way back in April when I’d written one of my Covid-19 related blogposts – maybe it was this one.

I had joked the post needed to be on Medium for it to be taken seriously (a lot of covid related analysis was appearing on Medium around that time). Someone suggested I actually put it on Medium. I copied and pasted it there. Medium promptly took down my post.

I got pissed off and swore to never post on Medium again. I got reminded of the time last year when Youtube randomly pulled down one of my cricket videos when someone (an IP troll, I later learnt) wrongly claimed that I’d used copyrighted sounds in my video (the only sound in that video was my own voice).  I had lodged a complaint with Youtube, and my video was resurrected, but it was off air for a month (I think).

Medium and Youtube are both examples of closed platforms. All content posted on these platforms are “native to the platform”. These platforms provide a means of distributing (and sometimes even marketing) the content, and all content posted there essentially belongs to the platform. Yes, you get paid a cut of the ad fee (in case your Youtube channel becomes super powerful, for example), but Youtube decides whether your video deserves to be there at all, and whose homepages to put it on.

The main feature of a closed platform is that any content created on the platform needs to be consumed on the same platform. A video I’ve uploaded on Youtube is only accessible on Youtube. A medium post can only be read on medium. A tweet can only be read on twitter. A Facebook post only on Facebook.

The advantage with closed platforms is that by submitting your content to the platform, you are hoping to leverage some benefits the platform might offer, like additional marketing and distribution, and discovery.

This blog doesn’t work that way. Blogposts work through this technology called “RSS”, and to read what I’m writing here you don’t need to necessarily visit noenthuda.com. You can read it on the feed reader of your choice (Feedly is what I use). Of course there is the danger that one feed reader can have overwhelming marketshare, and the destruction of that feed reader can kill the ecosystem itself (like it happened with Google Reader in 2013). Yet, RSS being an open platform means that this blog still exists, and you can continue to receive it on the RSS reader of your choice. If Medium were to shut down tomorrow, all Medium posts might be lost.

Another example of an open platform is email – it doesn’t matter what email service or app you use, my email and yours is interoperable. India’s Universal Payment Interface (UPI) is another open platform – the sender and receiver can use apps of their choice and still transact.

And yet another open platform (which a lot of people didn’t really realise is an open platform) is podcasting. Podcasts run on the RSS protocol. So when you subscribe to a podcast using Apple Podcasts, it is similar to adding a blog to your Feedly. This thread by Ben Thompson of Stratechery (that I just stumbled upon when I started writing this post) sums it up well:

What Spotify is trying to do (with the Joe Rogan and Ringer deals) is to take these contents off open platforms and put it on its own closed platform. Some people (like Rogan) will take the bait since they’re getting paid for it. However, this comes at the cost of control – like I’m not sure if we’ll have another episode of Rogan’s podcast where host and guest light up a joint.

Following my experiences with Medium and Youtube, when my content was yanked off for no reason (or for flimsy reasons), I’m not sure I like closed platforms any more. Rather, someone needs to pay me a lot of money to take my content to a closed platform (speaking of which, do you know that all my writing for Mint (written in 2013-18) is behind their newly erected paywall now?).

In closing I must mention that platforms being “open” and platforms being “free” are orthogonal. A paid podcast or newsletter is still on an open platform (see Ben Thompson tweetstorm above), since it can be consumed on a medium independent of the one where it was produced – essentially a different feed is generated depending on what the customer has paid for.

Now that I’ve written this post, I don’t know what the point of this is. Maybe it’s just for collecting and crystallising my own thoughts, which is the point behind most of my blogposts anyway.

PS: We have RSS feeds for text and podcasts for audio. I wonder why we don’t have a popular and open protocol for video.

Zoom in, zoom out

It was early on in the lockdown that the daughter participated in her first ever Zoom videoconference. It was an extended family call, with some 25 people across 9 or 10 households.

It was chaotic, to say the least. Family call meant there was no “moderation” of the sort you see in work calls (“mute yourself unless you’re speaking”, etc.). Each location had an entire family, so apart from talking on the call (which was chaotic with so many people anyways), people started talking among themselves. And that made it all the more chaotic.

Soon the daughter was shouting that it was getting too loud, and turned my computer volume down to the minimum (she’s figured out most of my computer controls in the last 2 months). After that, she lost interest and ran away.

A couple of weeks later, the wife was on a zoom call with a big group of her friends, and asked the daughter if she wanted to join. “I hate zoom, it’s too loud”, the daughter exclaimed and ran away.

Since then she has taken part in a couple of zoom calls, organised by her school. She sat with me once when I chatted with a (not very large) group of school friends. But I don’t think she particularly enjoys Zoom, or large video calls. And you need to remember that she is a “video call native“.

The early days of the lockdown were ripe times for people to turn into gurus, and make predictions with the hope that nobody would ever remember them in case they didn’t come through (I indulged in some of this as well). One that made the rounds was that group video calling would become much more popular and even replace group meetings (especially in the immediate aftermath of the pandemic).

I’m not so sure. While the rise of video calling has indeed given me an excuse to catch up “visually” with friends I haven’t seen in ages, I don’t see that much value from group video calls, after having participated in a few. The main problem is that there can, at a time, be only one channel of communication.

A few years back I’d written about the “anti two pizza rule” for organising parties, where I said that if you have a party, you should either have five or fewer guests, or ten or more (or something of the sort). The idea was that five or fewer can indeed have one coherent conversation without anyone being left out. Ten or more means the group naturally splits into multiple smaller groups, with each smaller group able to have conversations that add value to them.

In between (6-9 people) means it gets awkward – the group is too small to split, and too large to have one coherent conversation, and that makes for a bad party.

Now take that online. Because we have only one audio channel, there can only be one conversation for the entire group. This means that for a group of 10 or above, any “cross talk” needs to be necessarily broadcast, and that interferes with the main conversation of the group. So however large the group size of the online conversation, you can’t split the group. And the anti two pizza rule becomes “anti greater than or equal to two pizza rule”.

In other words, for an effective online conversation, you need to have four (or at max five) participants. Else you can risk the group getting unwieldy, some participants feeling left out or bored, or so much cross talk that nobody gets anything out of it.

So Zoom (or any other video chat app) is not going to replace any of our regular in-person communication media. It might to a small extent in the immediate wake of the pandemic, when people are afraid to meet large groups, but it will die out after that. OK, that is one more prediction from my side.

In related news, I swore off lecturing in Webinars some five years ago. Found it really stressful to lecture without the ability to look into the eyes of the “students”. I wonder if teachers worldwide who are being forced to lecture online because of the shut schools feel the way I do.

Hanging out on Hangouts

The covid-19 crisis has fundamentally changed the way we work, and I thikn some things we are not going to get back. For the foreseeable future, at least, even after official lockdowns have been lifted, people will be hesitant to meet each other.

This means that meetings that used to earlier happen in person are now going to happen on video calls. People will say that video calls can never replace the face-to-face meetings, and that they are suboptimal, especially for things like sales, account management, relationship management, etc.

The main reason why face-to-face interactions are generally superior to voice or video calls is that the latter is considered transactional. Let’s say I decide to meet you for some work-related thing. We meet in one of our offices, or a coffee  shop, or a bar, and indulge in pleasantaries. We talk about the traffic, about coffee, about food, do some random gossip, discuss common connects, and basically just hang out with each other for a while before we get down to work.

While these pleasantaries and “hanging out” can be considered to be a sort of transaction cost, it is important that we do it, since it helps in building relationships and getting more comfortable with each other. And once you’ve gotten comfortable with someone you are likely (at the margin) to do more business with them, and have a more fruitful relationship.

This kind of pleasantaries is not common on a phone call (or a video call). Usually phone calls have more well defined start and end boundaries than in-person meetings. It is rather common for people to just get started off on the topic of discussion rather than getting to know one another, cracking jokes, discussing the weather and all that.

If we need video and phone calls to become more effective in the coming months (at least as long as people aren’t stepping out), it is imperative that we learn to “hang out on hangouts”. We need to spend some time in the beginning of meetings with random discussions and gossip. We need to be less transactional. This transaction cost is small compared to the benefit of effectively replicating in-person meetings.

However, hanging out on hangouts doesn’t come easily to us – it’s not “natural”. The way to get around it is through practice.

On Sunday night, on a whim, I got onto a group video call with a bunch of college friends. Midway through the call I wondered what we were doing. Most of the discussion was pointless. But it gave us an opportunity to “hang out” with each other in a way we hadn’t for a long time (because we live in different places).

Overall, it was super fun, and since then I’ve been messaging different groups of friends saying we should do group video chats. Hopefully some of those will fructify. Along with the immediate fun to be had, they will also help me prepare better for “hanging out” at the beginning of my work meetings.

I think you should do them, too.

Fancy stuff leads to more usage

A couple of months back, I decided to splurge a bit and treat myself to a pair of AirPods. Not the Pro version, which hadn’t yet been released, but this was the last generation. For someone who had hardly ever bought earphones in life (mostly using the ones that came bundled with phones), and for someone who would incessantly research before buying electronics, this counted as an impulse purchase.

A few months back a friend had told me that he had researched all the earphones in the market, and concluded that the best one for making calls is the AirPods. As it happens, he has an Android phone, and so decided it’s not worth it in the absence of an iPhone. And when he told me this, I figured that with an all-Apple lineup of devices, this is something I should seriously consider.

In the past I’d never been that much of a earphone user, mostly using them to listen to music when seated with my laptop outdoors. I hardly ever used them with my phone (a cable jutting out of the pocket was cumbersome). Based on that rationale, when I was in the market for a pair last year, I ended up buying a random cheap pair.

What my AirPods have shown me is that having a good device makes you use it so much more.

The UX on the AirPods is excellent and intuitive. Right now, for example, they’re connected to my laptop as I listen to music while writing this. If I were to get a call right now, I can very quickly switch them to pair with my phone, and talk on. And then after the call it’s two clicks to get them back to pair with the laptop.

This kind of experience is something that cannot be quantified, and because you cannot quantify and compare this across competing devices, in deep research you can miss out on this. This is one of those points that Rory Sutherland makes in Alchemy, which I read last month. And you fail to appreciate things like experience until you have really experienced it.

The amazing UX on the AirPods, not to talk about the great sound, means that I’ve, in a month, used them far more than I’d use other earphones in a year. Even when alone at home, I don’t blast music on my computer now – it’s always through the AirPods. I sometimes wear them while going on walks (though long walks are reserved for introspection with nothing streaming through my ears).

I was in Mumbai on Tuesday, and on the flight on both ways, I listened to podcasts using the AirPods. I’m surprised I had never thought of the idea before – it’s incredibly neat since you can close your eyes and listen, and sleep at your leisure. On commutes between meetings in Mumbai, I listened to podcasts in taxis. And so on.

So this is a learning for the next time – when I’m researching for a product that I think I may not use frequently, I need to keep in mind that if I like it I will use it far more than whatever it replaces. And if that is going to make my life better, the premium I would have paid for it will be really really worth it.

Oh, and coming back to AirPods, one question I keep getting is if they’re easy to lose. Based on the evidence so far, the biggest risk on that count is the daughter running off with one or both of them and misplacing them somewhere!

Lullabies and walled gardens

There’s still a bit of walled gardens going on in the device and voice control space. About two years ago, in London, we acquired an Amazon Echo, and found that Alexa voice assistant could be used to play songs through either Spotify or Amazon Music, but not through Apple Music, which we then used.

And so, we got rid of Apple Music and took a subscription to Spotify. And among the things we would make Alexa do was to play the daughter’s lullabies on Spotify. And that is how, at the age of two, Berry spoke her first complete sentence, “Alexa, use Spotify to play Iron Man by Black Sabbath”.

We don’t have that Echo any more, and as a household are in a complete “apple ecosystem” as far as devices are concerned. Two Macs, two iPhones, an iPad and now a pair of AirPods. However, we had quite got used to Spotify and its playlists and its machine learning, and even though the India catalogue is nowhere as good as the one in the UK, we continued our subscription.

However, bands such as Black Sabbath, Led Zeppelin and Iron Maiden are critical for us, not least because their songs are part of the daughter’s sleeping portfolio. So we need something other than Spotify. And then we discovered that in India, Amazon Prime Music comes bundled with the Amazon Prime membership. And so we created the daughter’s sleeping playlist there, and started using it for bands not available on Spotify.

It was an uncomfortable arrangement, not least because Amazon Music is a terrible software product. Since family subscriptions are still not a thing with Spotify India, during periods of deep work the wife and I would fight over who would get Spotify and who had to make do with Amazon Music.

And then there is voice. Being in a complete Apple EcoSystem now, we found that Siri couldn’t control Spotify or Amazon Music, and for seamless voice experience (especially given I use it in car, using Apple Carplay) we needed Apple Music. And given how painful Amazon Music is to use, I thought spending ?149 a month on Apple Music Family Subscription is worth it, and took the subscription yesterday.

Since then I’ve been happily using it using voice control on all devices. Except until an hour back when I was putting the daughter to sleep. She requested for “baby has he”, which is her way of saying she wants Iron Man by Rockabye Baby (rather than by Black Sabbath). And so I held down the home button of the iPad and barked “play lullaby renditions of Black Sabbath”.

I don’t know what Siri interpreted (this is a standard command I’d been giving it back in the day when I used to exclusively use Apple Music), but rather than playing Lullaby Renditions of Black Sabbath, it played some “holy lullabies”, basically lullaby versions of some Christian songs. I tried changing but the daughter insisted that I let it be.

And so she kept twisting and turning in her bed, not going to sleep. I soon lost patience. Abandoning voice, I opened the iPad and switched from Apple Music to Spotify, where I knew the Rockabye Baby album was open (from last night – we hardly use the iPad otherwise nowadays), and started playing that.

Before Iron Man was halfway through, the daughter was fast asleep.

Television and interior design

One of the most under-rated developments in the world of architecture and interior design has been the rise of the flat-screen television. Its earlier avatar, the Cathode Ray Tube version, was big and bulky, and needed special arrangements to keep. One solution was to keep it in corners. Another was to have purpose-built deep “TV cabinets” into which these big screens would go.

In the house that I grew up in, there was a purpose-built corner to keep our televisions. Later on in life, we got a television cabinet to put in that place, that housed the television, music system, VCR and a host of other things.

For the last decade, which has largely coincided with the time when flat-screen LCD/LED TVs have replaced their CRT variations, I’ve seen various tenants struggle to find a good spot for the TVs. For the corner is too inelegant for the flat screen television – it needs to be placed flat against the middle of a large wall.

When the flat screen TV replaced the CRT TV, out went the bulky “TV cabinets” and in came the “console” – a short table on which you kept the TV, and below which you kept the accompanying accessories such as the “set top box” and DVD player. We had even got a purpose-built TV console with a drawer to store DVDs in.

Four years later, we’d dispensed with our DVD player (at a time when my wife’s job involved selling DVDs and CDs, we had no device at home that could play any of these storage devices!). And now we have “cut the cord”. After we returned to India earlier this year, we decided to not get cable TV, relying on streaming through our Fire stick instead.

And this heralds the next phase in which television drives interior design.

In the early days of flat screen TVs, it became common for people to “wall mount” them. This was usually a space-saving device, though people still needed a sort of console to store input devices such as set top boxes and DVD players.

Now, with the cable having been cut and DVD player not that common, wall mounting doesn’t make sense at all. For with WiFi-based streaming devices, the TV is now truly mobile.

In the last couple of months, the TV has nominally resided in our living room, but we’ve frequently taken it to whichever room we wanted to watch it in. All that we need to move the TV is a table to keep it on, and a pair of plug points to plug in the TV and the fire stick.

In our latest home reorganisation we’ve even dispensed with a permanent home for the TV in the living room, thus radically altering its design and creating more space (the default location of the TV now is in the study). The TV console doesn’t make any sense, and has been temporarily converted into a shoe rack. And the TV moves from room to room (it’s not that heavy, either), depending on where we want to watch it.

When the CRT TV gave way to the flat screen, architects responded by creating spaces where TVs could be put in the middle of a long wall, either mounted on the wall or kept on a console. That the TV’s position in the house changed meant that the overall architecture of houses changed as well.

Now it will be interesting to see what large-scale architectural changes get driven by cord-cutting and the realisation that the TV is essentially a mobile device.

10X Studs and Fighters

Tech twitter, for the last week, has been inundated with unending debate on this tweetstorm by a VC about “10X engineers”. The tweetstorm was engineered by Shekhar Kirani, a Partner at Accel Partners.

I have friends and twitter-followees on both sides of the debate. There isn’t much to describe more about the “paksh” side of the debate. Read Shekhar’s tweetstorm I’ve put above, and you’ll know all there is to this side.

The vipaksh side argues that this normalises “toxicity” and “bad behaviour” among engineers (about “10X engineers”‘s hatred for meetings, and their not adhering to processes etc.). Someone I follow went to the extent to say that this kind of behaviour among engineers is a sign of privilege and lack of empathy.

This is just the gist of the argument. You can just do a search of “10X engineer”, ignore the jokes (most of them are pretty bad) and read people’s actual arguments for and against “10X engineers”.

Regular readers of this blog might be familiar with the “studs and fighters” framework, which I used so often in the 2007-9 period that several people threatened to stop reading me unless I stopped using the framework. I put it on a temporary hiatus and then revived it a couple of years back because I decided it’s too useful a framework to ignore.

One of the fundamental features of the studs and fighters framework is that studs and fighters respectively think that everyone else is like themselves. And this can create problems at the organisational level. I’d spoken about this in the introductory post on the framework.

To me this debate about 10X engineers and whether they are good or bad reminds me of the conflict between studs and fighters. Studs want to work their way. They are really good at what they’re competent at, and absolutely suck at pretty much everything else. So they try to avoid things they’re bad at, can sometimes be individualistic and prefer to work alone, and hope that how good they are at the things they’re good at will compensate for all that they suck elsewhere.

Fighters, on the other hand, are process driven, methodical, patient and sticklers for rules. They believe that output is proportional to input, and that it is impossible for anyone to have a 10X impact, even 1/10th of the time (:P). They believe that everyone needs to “come together as a group and go through a process”.

I can go on but won’t.

So should your organisation employ 10X engineers or not? Do you tolerate the odd “10X engineer” who may not follow company policy and all that in return for their superior contributions? There is no easy answer to this but overall I think companies together will follow a “mixed strategy”.

Some companies will be encouraging of 10X behaviour, and you will see 10X people gravitating towards such companies. Others will dissuade such behaviour and the 10X people there, not seeing any upside, will leave to join the 10X companies (again I’ve written about how you can have “stud organisations” and “fighter organisations”.

Note that it’s difficult to run an organisation with solely 10X people (they’re bad at managing stuff), so organisations that engage 10X people will also employ “fighters” who are cognisant that 10X people exist and know how they should be managed. In fact, being a fighter while recognising and being able to manage 10X behaviour is, I think, an important skill.

As for myself, I don’t like one part of Shekhar Kirani’s definition – that he restricts it to “engineers”. I think the sort of behaviour he describes is present in other fields and skills as well. Some people see the point in that. Others don’t.

Life is a mixed strategy.

Single Malt Recommendation App

Life is too short to drink whisky you don’t like.

How often have you found yourself in a duty free shop in an airport, wondering which whisky to take back home? Unless you are a pro at this already, you might want something you haven’t tried before, but don’t want to end up buying something you may not like. The names are all grand, as Scottish names usually are. The region might offer some clue, but not so much.

So I started on this work a few years back, when I first discovered this whisky database. I had come up with a set of tables to recommend what whisky is similar to what, and which single malts are the “most unique”. Based on this, I discovered that I might like Ardbeg. And I ended up absolutely loving it.

And ever since, I’ve carried a couple of tables in my Evernote to make sure I have some recommendations handy when I’m at a whisky shop and need to make a decision. But then the tables are not user friendly, and don’t typically tell you what you should buy, and what your next choice should be and so on .

To make things more user-friendly, I have built this app where all you need to enter is your favourite set of single malts, and it gives you a list of other single malts that you might like.

The data set is the same. I once again use cosine similarity to find the similarity of different whiskies. Except that this time I take the average of your favourite whiskies, and then look for the whiskies that are closest to that.

In terms of technologies, I’ve used this R package called Shiny to build the app. It took not more than half an hour of programming effort to build, and most of that was in actually building the logic, not the UI stuff.

So take it for a spin, and let me know what you think.

 

Voice assistants and traditional retail

Traditionally, retail was an over-the-counter activity. There was a physical counter between the buyer and the seller, and the buyer would demand what he wanted, and the shopkeeper would hand it over to him. This form of retail gave greater power to the shopkeeper, which meant that brands could practice what can be described as “push marketing”.

Most of the marketing effort would be spent in selling to the shopkeeper and then providing him sufficient incentives to sell it on to the customer. In most cases the customer didn’t have that much of a choice. She would ask for “salt”, for example, and the shopkeeper would give her the brand of salt that benefited him the most to sell.

Sometimes some brands would provide sufficient incentives to the shopkeeper to ensure that similar products from competing brands wouldn’t be stocked at all, ensuring that the customer faced a higher cost of getting those products (going to another shops) if they desired it. Occasionally, such strategies would backfire (a client with extremely strong brand preferences would eschew the shopkeeper who wouldn’t stock these brands). Mostly they worked.

The invention of the supermarket (sometime in the late 1800s, if I remember my research for my book correctly – it followed the concept of set prices) changed the dynamics a little bit. In this scenario, while the retailer continues to do the “shortlisting”, the ultimate decision is in the hands of the customer, who will pick her favourite among the brands on display.

This increases the significance of branding in the minds of the customer. The strongest incentives to retailers won’t work (unless they result in competing brands being wiped out from the shelves – but that comes with a risk) if the customer has a preference for a competing product. At best the retailer can offer these higher-incentive brands better shelf space (eye level as opposed to ankle level, for example).

However, even in traditional over-the-counter retail, branding matters to an extent when there is choice (as I had detailed in an earlier post written several years ago). This is in the instance where the shopkeeper asks the customer which brand she wants, and the customer has to make the choice “blind” without knowing what exactly is available.

I’m reminded of this issue of branding and traditional retail as I try to navigate the Alexa voice assistant. Nowadays there are two ways in which I play music using Spotify – one is the “direct method” from the phone or computer, where I search for a song, a list gets thrown up and I can select which one to play. The other is through Alexa, where I ask for a song and the assistant immediately starts playing it.

With popular songs where there exists a dominant version, using the phone and Alexa give identical results (though there are exceptions to this as well – when I ask Alexa to play Black Sabbath’s Iron Man, it plays the live version which is a bit off). However, when you are looking for songs that have multiple interpretations, you implicitly let Alexa make the decision for you, like a shopkeeper in traditional retail.

So, for example, most popular nursery rhymes have been covered by several groups. Some do the job well, singing the rhymes in the most dominant tunes, and using the most popular versions of the lyrics. Other mangle the tunes, and even the lyrics (like this Indian YouTube channel called Chuchu TV has changed the story of Jack and Jill, to give a “moral” to the story. I’m sure as a teenager you had changed the lyrics of Jack and Jill as well :P).

And in this situation you want more control over which version is played. For most songs I prefer the Little Baby Bum version, while for some others I prefer the Nursery Rhymes 123 version, but there is no “rule”. And this makes it complicate to order songs via Alexa.

More importantly, if you are a music publisher, the usage of Alexa to play on Spotify means that you might be willing to give Spotify greater incentives so that your version of a song comes up on top when a user searches for it.

And when you factor in advertising and concepts such as “paid search” into the picture, the fact that the voice assistants dictate your choices makes the situation very complicated indeed.

I wonder if there’s a good solution to this problem.

Programming Languages

I take this opportunity to apologise for my prior belief that all that matters is thinking algorithmically, and language in which the ideas are expressed doesn’t matter.

About a decade ago, I used to make fun of information technology company that hired developers based on the language they coded in. My contention was that writing code is a skill that you either have or you don’t, and what a potential employer needs to look for is the ability to think algorithmically, and then render ideas in code. 

While I’ve never worked as a software engineer I find myself writing more and more code over the years as a part of doing data analysis. The primary tool I use is R, where coding doesn’t really feel like coding, since it is a rather high level language. However, I’m occasionally asked to show code in Python, since some clients are more proficient in that, and the one thing that has done is to teach me the value of domain knowledge of a programming language. 

I take this opportunity to apologise for my prior belief that all that matters is thinking algorithmically, and language in which the ideas are expressed doesn’t matter. 

This is because the language you usually program in subtly nudges you towards thinking in a particular way. Having mostly used R over the last decade, I think in terms of tables and data frames, and after having learnt tidyverse earlier this year, my way of thinking algorithmically has become in a weird way “object oriented” (no, this has nothing to do with classes). I take an “object” (a data frame) and then manipulate it in various ways, changing it, summarising stuff, calculating things on the fly and aggregating, until the point where the result comes out in an elegant manner. 

And while Pandas allows chaining (in fact, it is from Pandas that I suspect the tidyverse guys got the idea for the “%>%” chaining operator), it is by no means as complete in its treatment of chaining as R, and that that makes things tricky. 

Moreover, being proficient in R makes you think in terms of vectorised operations, and when you see that python doesn’t necessarily offer that, and and operations that were once simple in R are now rather complicated in Python, using list comprehension and what not. 

Putting it another way, thinking algorithmically in the framework offered by one programming language makes it rather stressful to express these thoughts in another language where the way of algorithmic thinking is rather different. 

For example, I’ve never got the point of the index in pandas dataframes, and I only find myself “resetting” it constantly so that my way of addressing isn’t mangled. Compared to the intuitive syntax in R, which is first and foremost a data analysis tool, and where the data frame is “native”, the programming language approach of python with its locs and ilocs is again irritating. 

I can go on… 

And I’m guessing this feeling is mutual – someone used to doing things the python way would find R’s syntax and way of doing things rather irritating. R’s machine learning toolkit for example is nowhere as easy as scikit learn is in python (this doesn’t affect me since I seldom need to use machine learning. For example, I use regression less than 5% of the time in my work). 

The next time I see a job opening for a “java developer” I will not laugh like I used to ten years ago. I know that this posting is looking for a developer who can not only think algorithmically, but also algorithmically in the way that is most convenient to express in Java. And unlearning one way of algorithmic thinking and learning another isn’t particularly easy.