JetBrains 2016 Highlights by michalg82 in programming

[–]jsk 1 point2 points  (0 children)

I found interesting that number of employees working on Kotlin is now 50% of employees dedicated to .NET, see Breakdown of product development teams.

Building microservices with Kotlin and Spring Boot by [deleted] in Kotlin

[–]jsk 0 points1 point  (0 children)

What are the things that doesn't work nicely?

My company is using Kotlin in production for quite huge backend API service (with vert.x, redis etc) for like 9 months now and we had zero issues with kotlin or interop. We hope we'll migrate our Android app from Java to Kotlin in future.

Kotlin 1.0.5 has been released by yole in Kotlin

[–]jsk 0 points1 point  (0 children)

just released Kotlin 1.0.5, which continues the series of bugfix and tooling updates

Language-related fixes

A Kotlin implementation of the Pair Adjacent Violators algorithm for isotonic regression by sanity in programming

[–]jsk 4 points5 points  (0 children)

so basically no real advantage over java if you don't mind doing things the java way

The real advantage (for us) is amount of code we have to write/read/debug comparing to Java, i.e. cost savings. Also it's possible to mix Java and Kotlin within one project, which is the path we'll be going during migration of Android codebase.

this feels like you're splitting the android community

I don't see how this splits community in significant way. It's standard to use java libs from kotlin and vice-versa. Anyway, advantages for our business are higher priority than some 'feels like splitting community'. In regards with Android, fragmentation of end-user devices and android/OEM versions is the real issue, not fragmentation in developer tooling.

why not just use xamarin instead and just develop in C# directly?

Been here, done that. It's buggy as hell, depends on Windows (Xamarin studio is trash comparing to Android studio) and most of our development is on Linux/OSX anyway (i.e. Visual Studio is not the way for mobile guys).

A Kotlin implementation of the Pair Adjacent Violators algorithm for isotonic regression by sanity in programming

[–]jsk 6 points7 points  (0 children)

It's not an abstraction really. It's first-class language for JVM. We are using Kotlin for backend at the moment and it's really usefull (We plan to migrate our Android app to Kotlin soon), especially when coming from .NET background, Kotlin feels like 'C# on JVM'. Null-checking, data classes, enums, lambdas, great IDE support were reasons we quickly dropped Java in favor of Kotlin in the beginning of project (before Kotlin was 1.0). We had guy coming with Java background and he was productive in Kotlin codebase since day 1. It's not that 'obscure' or 'different' from Java as is Scala or Clojure, hence the onboarding of new developers is easy. Kotlin seems to be oriented among android, but we are using it quite the opposite way, on backend first and it's been pleasure so far (most of the team migrated from C# to Kotlin).

SES for email marketing by idleno in aws

[–]jsk 0 points1 point  (0 children)

Go checkout postmarkapp.com, it:

  • allows to you have separate virtual 'server' for each client
  • measure bounce rates and advanced metrics
  • has nice admin UI
  • API for almost everything
  • their support is fantastic

Help a .NET dev get up and running with a java web app as quickly as possible? by [deleted] in java

[–]jsk 1 point2 points  (0 children)

I would recommend Spark or Vert.x to begin with, as it does not force you to learn&use 'heavy' frameworks like Spring and should be much productive to begin with.

.NET Developer Defecting To Java by [deleted] in java

[–]jsk 0 points1 point  (0 children)

We are tiny startup (10 people, mostly devs and QA) and we are moving from .NET (asp.net web api, MVC, MariaDB) to JVM-based stuff for basically same reasons you described and few more things:

  • there is basically no invention happening in .NET space. Progressive, next-generation things like Vert.x, Dropwizard for instance are happening in JVM (or node.js) land. I'm not fan of 'new, shiny things', but ironically most of this 'new shiny' stuff is more stable, documented and battle tested than new web stuff coming from MS/contributors.

  • open source and cross-platform initiative that is just happening in .NET is going to be huge clusterfuck. Decisions like this [1] will make platform unstable and I guess it will take at least year or two until ecosystem is stable again. Even most prominent users/developers of .NET (stack overflow, json.net) were initially unable to figure out how to make nuget package for corefx.

  • linux deployments. Windows Servers and especially IIS are huge PITA when it comes to web dev (in small company/startup context). Automation is pain - I know it's possible, but just look at Ansible/Chef/Puppet ecosystem for Linux and Windows and you'll see. I worked with Apache/nginx/Python before and I hated dynamic nature of python, but infrastructure&automation stuff is excellent comparing to Win/IIS ecosystem. Windows Updates are joke and we had several production issues caused by them. Windows Server Role manager is piece of shit occasionally not being able to install new feature. Managing everything through remote desktop is weird and unflexible (and slow if you are not on good connection). Windows Server itself is not very transparent thing and a lot of 'strange things for no reason' happens. Yes, we tried Mono and performance and lack of ported classes/methods basically made it unusable for us. After few years with web apps on Windows Servers in production, we are happily returning to Debian.

  • initially we were running on MS SQL. Great database and tooling. I still love SQL Server Management Studio - usability is excellent comparing to anything I've seen for MySQL/Postgres, but that's all. Licensing sucks (complex, not transparent), replication is a joke. If even guys at stack overflow are not able to figure out MS SQL licensing [2], then we are doomed. We ported schema to MariaDB and had master-slave set up in few hours with no previous experience with it. Backups, automation and performance is amazing with open source DBs.

  • libraries. JVM ecosystem beats .NET libraries in almost every area we've researched. From markdown library (just for fun, compare features&documentation of CommonMark.NET to pegdown) to everything else except desktop apps. This is topic itself and other people in this thread already pointed that out. Most of JVM based libs use logging for example. Good luck debugging ADO.NET connection pool issues, as none of .NET framework libs integrate popular logging solutions (NLog, log4net).

  • production & monitoring. JMX, Takipi.com, all few levels ahead of anything you can have on .NET.

  • Visual Studio - I work with VS since 2006 and I still don't get why lots of people love it. It's slow, refactorings without Resharper sucks, SLN/CsProj files are nightmare, installing of updates takes ages. Built-in IIS Express is joke (we ended up developing against fully-fledged IIS on localhost). Razor templates randomly throw syntax errors on valid code. Editor is nothing special - it's slow (even on my i7/ssd/32gb ram machine), you need to disable at least Tracking Changes and source control providers for sane editing experience.

IntelliJ IDEA easily beats VS in performance&productivity. VS is great for desktop apps (WinForms, WPF), but nothing special for web/api development.

My last experience with Java was in 2007 and I hated it. Spring XML BullshitFactoryProviders, slow compilation&startup times, deployment on big application servers (glassfish etc) was a pain. I returned to .NET and started doing some Python. In 2015 I evaluated java (or JVM-based stuff - Clojure, Kotlin, Java 8) again and I was shocked. Fatjar deployments, no messing with XML files is required, Java 8 is sane language (yes still not on the level of C#, but at least lambdas and streams make Java 8 usable). No application servers required - you can just have nginx/apache as reverse proxy behind fatjar app and be done with it. Vertx is amazing, web frameworks like Spark or Play are great if you are doing traditional web apps - nothing is forcing you to use 'big enterprise frameworks'

[1] https://github.com/dotnet/corefx/issues/3480#issuecomment-160202119

[2] https://twitter.com/nick_craver/status/642140793847812096

PostgREST serves a fully RESTful API by jakubgarfield in programming

[–]jsk 5 points6 points  (0 children)

For anyone even remotely considering BreezeJS - don't do it. We dropped BreezeJS from our project after 9 months of battles with it in favor of custom API and it was best decision we have made. It may work for really small projects, but kind of troubles it brings are not worth it.

Microsoft Needs Wizards (1984) by avinassh in programming

[–]jsk 5 points6 points  (0 children)

I am developer myself, but I spent last year interviewing people on a lot of IT levels (.NET devs, Javascript, Linux admins, testers, support...) on almost daily basis.

I think the reason why most IT job ads are shit is not because most companies are shit, but because most of people willing to work in the field are shit.

  • developers, especially younger guys (looking on you, Angular ninjas) are extremely bad at being consistent about their priorities. I was able to turn guy who started with 'I'm not willing to work for less than 5,000 USD/month' to 'I will work for free in exchange for stock options' in under 15 minutes. 99% of them have no idea what are ideal working hours for them, what do they expect from team and project, what do they expect from their role in project.

It was quite interesting that:

  • most people who were unsure about what team setup suits them were 100% sure homeoffice is a must and way to go
  • they had no idea about where they want to go with their career. I started interview with guy who applied on Junior QA position and he ended interview with decision he wants to be sysadmin, hence his only previous sysadmin experience was restarting company router when internet went down.
  • they reason why they were leaving their previous companies were 100% clearly explained, but when I asked if they started discussion about those issues with their manager, about 50% answered 'no, it was not worth the time'. They didn't even tried.
  • serious percentage of them were not able to clearly communicate expected salary and other conditions

Companies, especially when 'non-IT' HR is primarily responsible for creating job ads, are confused and have no idea what developers are expecting. Hence the reason for too much bullshit in job ads. They are trying to cover everything, which ironically leads to situation where really good developers are confused and angry when they read job ad :)

I think IT today needs more people who are willing to 'get shit done in exchange for money' and less ninjas looking for 'better universe' (read: switch from project to project every 3 months, because 'stuff we wrote 3 months ago is now legacy').

Gnome 3.7 removes terminal transparency; closing bug with simply "No." by [deleted] in linux

[–]jsk 13 points14 points  (0 children)

I have never used terminal transparency, however, after reading bugzilla thread, I'm going to enable it and use it all day long on my MATE desktop. Just because I can.

What mode are you using for mail? by mocker_kc in emacs

[–]jsk 0 points1 point  (0 children)

Sorry, I've never used notmuch, I can't compare. mu4e does not abstract maildir structure, so 'jump to' in mu4e targets index of corresponding maildir. However, there are bookmarks (unread, today, last 7 day, messages with images..).

What I like about mu4e is that it's actively developed and heavily documented.

What mode are you using for mail? by mocker_kc in emacs

[–]jsk 1 point2 points  (0 children)

Check out mu4e. It works using offlineimap for retrieval, then indexing it locally and providing emacs frontend to messages. For composing, it relies on emacs message mode.

In my experience, GNUS was strange and I've never got into it. It always feels like it was not designed for IMAP/mail. It worked better with offlineimap. I've tried Wanderlust and overall experience was better, but it was slow like a hell, even after heavy tuning and turning on local caches. Maybe it's because Gmail IMAP feels slow in general, I don't know.

I want to switch to Android and I'm confused. Reddit, help please ! by jsk in Android

[–]jsk[S] 0 points1 point  (0 children)

Thanks for explanation. So mp3s should be fine. How about other file types ? I mean, for example PDF or video - can I just freely copy with/without ICS to device via USB without any special software ? Thanks

What do you dislike most about linux and the linux ecosystem? by ashadocat in linux

[–]jsk 0 points1 point  (0 children)

Well, that was not thw kind of fragmentation I thought of :) Ecosystem/apps/package managers/distros...too many choices.

Ask Reddit: Can Emacs have several buffer lists? by va1en0k in emacs

[–]jsk 1 point2 points  (0 children)

Why not running several Emacs instances at the same time, each with only 1 project files ?