AMA from Microsoft JDConf

Moderator: Bruno @brunoborges

Panel: George (@gdams_), Kirk (@kcpeppe), Bernhard (@lewurm), Monica (@mon_beck), @Charlie (@crgracie), Martijn (@karianna), Scott (@coolcsh)

This felt more like a panel than an AMA to be because (as far as I can tell), the questions all came from the moderator rather than the audience.

Note: If any of the panelists read this, these are my notes, not a transcript 🙂

  • What would you bring from Java to .NET?
    • Scott: can configure settings for performance. Bruno did something impressive “turning dials” to tune a benchmark and make a huge difference.
  • How tune JVM?
    • Monica: JVM provides a lot of logs. ex: GC log over time shows patterns
  • What about JFR (Java flight recorder) events?
    • Martijn: Used to be commercial, now open source. In built telemetry.
  • ARM
    • Monica: COGS = cost of goods sold. More scaling across threads now.
    • Bernhard: Using ARM64 for 4 years. Before that, mobile phones.
    • Charlie: Not easy to do Java on hardware. Opportunities for less objects on heap. Don’t need to have chip do it for us.
    • Monica; Stack allocation is all about allocating into registers. ARM has more registers available
    • Kirk: Profilers don’t see so even sluggishness.
    • Monica: Some optimizations on memory channels. Buffer size matters.
    • Scott: ARM has Linux support
    • Scott: .NET can allocate memory inside a function on stack (instead of heap). Lets you micro-optimize
    • All: Both .NET and Java have “Unsafe” feature. Smalltalk too [good to know such things develop independently!]
  • OpenJDK
    • George: Java 11 getting more downloads than Java 8. 200 million downloads last week (across all versions)
    • All: New name of AdoptOpenJDK is Eclipse Adoptium. Can never win on creating a good name
    • Scott: Name has to be valid in many countries
  • How is it being a Java developer at Microsoft?
    • Martijn: Leads Java Engineering group. Have a lot of JVM engineers so a lot of C/assembly/yaml.
    • Bernhard: Came from MS .NET team. Can’t write either language, but ARM!
    • Charlie: Worked on J9 until last year. Different JVM, but same things. Good to see another large company in OpenJDK community
    • Kirk: Hope is that more will be built-into JDK and less will require parameters. Will still need some flag because of different needs
    • Monica: JDK background, new to working with .NET team. Similarities across both because managed runtime.
    • Bernhard: JIT (just in time) is more advanced in Java than .NET.
    • George: Benefit from JDKs together. Don’t need to build same thing over and over.
  • Closing
    • All: A lot to learn across language communities

Java Developer Productivity on Windows from Microsoft JDConf

Rich Turner @richturn_ms

I like that the talk was mostly live demo!

  • WinGet
    • new tool – unveiled in May at Build conference
    • built into windows
    • can install separately if on standard windows 10
    • can download source code of winget
    • like brew/apt-get
    • install from command line
    • can install apps from winget repo
    • can install apps from Windows Store that don’t require payment
    • can create own repo sources
    • color progress bar as downloads
    • examples of what can install: java, git bash
  • PowerShell
  • Windows Terminal – supports multiple terminals
  • If planning on deploying to Linux
    • could dual boot
    • could use VM
    • or use Windows Subsystem for LInux (WSL)
      • announced in 2016
      • has ubuntu shell
      • updated to WSL2 in 2020 which is lighter weight
      • can see Windows files from Linux and Linux files from Windows

Live blogging web 2.0 expo – web performance anti patterns and listening to your customers

See table of contents for full list of web 2.0 expo posts

I think the performance anti patterns one will be more interesting, but Microsoft does have good points about your customers being important and basics for most websites. And Hotnail has changed a lot over time.

Microsoft and Hotmail

  • Hotmail was one of the first webmails but is now largely popular only outside the US.
  • Gmail did well – big inbox, text ads, smooth interface,short release cycles
  • Recognized Microsoft asked users to pay for new features
  • If people don’t use something, it is an invention, not an innovation
  • I like that he identifies “real spam” vs newsletters that you subscribed to (and can presumably unsubscribe from)
  • The things Hotmail recognized must change are now things that one must have to do email – virtually unlimited storage, must filter spam out of inbox, performance, pre-cache content, mobile
  • ok. I know i said i wasn’t going to advertise hotmail, but the “sweep” feature makes setting up a filter less steps. Gmail: please copy. Except just the part about less steps to create a filter, not the part about having to schedule.
  • Encouraging ignoring all messages from a user vs unsubscribe. One day people are going to forget what unsubscribing means while all this bandwidth gets wasted and newsletter providers get labeled spammers
  • can create email alias for temporary person. Unlike gmail, can’t derive real email from alias.
  • “it might be cool, but i am fine where i am”. Lesson: once your customers leave, it is hard to get them bacK

How to make your website slow by Yottaa

  • Lots of requests to dowhload assets – really granular css, javascript, images. Can get yottaa score at yottaa.com to see how bad your site is in this space (coderanch did well with 95/100)
  • Fat resources – comments and whitespace in html, css, javascript (should use gzip compression), use larger images than needed (shouldn’t compress image in browser)
  • Bad server side -poor code, bad database design, inusufficient memory or slow hard drive, sharing server with others (gives unpredictable cpu use)
  • Randomness – things are fine for everyone except a few people. It only takes one resource to slow things down. This is why twitter widgets can be the bottleneck on page speed.
  • Do not use caching – set cache control properly. Both for repeat visitors and so subsequent pages in site share assets already downloaded
  • 3rd party plugins – not loading twitter, facebook, etc asynronously slows things down. A little for most users. 30-120 seconds in China because must wait for request to time out.
  • Redirect from www to other domain on the client side (use 302 not 301)
  • Add requests to resources that do not exist (404) – takes longer to return resource that does not exist than resource that does exist because looks in multiple places
  • Run javascript code while page loading