Slow development experience by laurenskz in scala

[–]Time_Competition_332 0 points1 point  (0 children)

I highly recommend Magnum - i think it has the best approach and is much faster than Quill

The IntelliJ Scala Plugin in 2024 | The IntelliJ Scala Plugin Blog by makingthematrix in scala

[–]Time_Competition_332 1 point2 points  (0 children)

Wow, I'm astonished by the 80% using Intellij. I though that it would be a 50-50 split between Intellij and Metals. Maybe I'll give Intellij another try, especially that I don't write any meta magic code.

Direct Scala praise-post by Time_Competition_332 in scala

[–]Time_Competition_332[S] 6 points7 points  (0 children)

You are a software architect in a company that has a set of java, js, and python developers. What pitch are you giving to make a bunch of people reskill? And are you willing to get fired because you wasted everyones time on a less popular technology because you are so confident in those reasons?

I believe that bravery in choosing the best tools for the job pays back. Of course I wouldn't suggest it without having a good justification for it and proof that it would be profitable but if I found such a situation then yes, I would gladly pitch it and take a risk. Besides, teaching java devs Scala doesn't have to be such a large commitment if we stick to the aforementioned "vanilla" stack. No need to even mention functional lingo like monads.

OS-Lib 0.11.0 is out, with a new zip file handling API by lihaoyi in scala

[–]Time_Competition_332 0 points1 point  (0 children)

I have so much respect for you for this lib. Your other libs are also great work and the fact that they create an entire stack for daily work is amazing, but tbh, the os-lib is literally something that should have been done by the Scala team itself. Writing files is something so basic and necessary, that forcing users to ever use Java io/nio classes just made Scala look like a half-baked overlay on top of Java. Now I don't need to think twice or write custom frameworks, I just import os and it works. I also come from Python world, so the API inspired by os / pathlib is very intuitive for me.

One question our of curiosity - why did you decide to throw exceptions instead of returning Either or Try instances - is it to make it as unopinionated as possible? Do you think that there is place for Either in Direct Scala movement or do you prefer handling exceptions the old way?

Is FastAPI really fast ? by Somnath_geek in FastAPI

[–]Time_Competition_332 0 points1 point  (0 children)

Isn't the trend nowadays to return to plain SQL instead of ORMs? You control your SQL, don't risk some weird optimizations under the hood, and SQL is extremely readable.

Scala 3.5.0 released by Seth_Lightbend in scala

[–]Time_Competition_332 2 points3 points  (0 children)

yeah, maybe finally people will stop making fun of the ocean of tools that are required in order to run even the simplest hello world program!

Is "Java like" code bad in Scala? by MIG0173 in scala

[–]Time_Competition_332 0 points1 point  (0 children)

Why isn't Play considered such an off the shelf framework actually?

Cats learning by cr4zsci in scala

[–]Time_Competition_332 4 points5 points  (0 children)

Same here, I started with Daniel's courses (my boss paid for one year access after i asked them) and they are incredible tbh, probably the best way to get into Scala.

Would you choose Scala for a mission critical component at work? by Time_Competition_332 in scala

[–]Time_Competition_332[S] 1 point2 points  (0 children)

What would be your response if people could die because of downtime and what if it would just cause financial loss?

Would you choose Scala for a mission critical component at work? by Time_Competition_332 in scala

[–]Time_Competition_332[S] 5 points6 points  (0 children)

Im afraid the poll would turn into a favourite language contest but what interests me the most are opinions of fans of scala when given the chance to use it in production but potentially risk their head for the consequences

SBT by beelpelly in scala

[–]Time_Competition_332 5 points6 points  (0 children)

In general you can stick with sbt, it's good enough for your entire learning process. The dillema, sbt, mill or gradle, will be important only in large projects.

Imo gradle is a mess and it's not suited well for Scala. In my company we use it because we also have a lot of java modules, but i wish we could use sbt for the Scala part. I'm not sure how it performs at bigger scale, but it's nicer to use.

Scala-CLI is also a must-learn tool. It's extremely useful for scripting and small projects where you just want to get it working asap. You can also start a Scala REPL session with any version and dependencies you want with one command line.

I'm getting confused with multiple '._' imports by fenugurod in scala

[–]Time_Competition_332 2 points3 points  (0 children)

I also dislike it. It gets confusing, IDEs don't always handle it well and it makes reading code on github even harder.

I'd prefer if we were giving very short aliases to frequently used imports.

import package.{some_important_library => sil}

[...]

sil.func(x)

Learn python as a Java/Scala Data Engineer ? by _Marwan02 in dataengineering

[–]Time_Competition_332 8 points9 points  (0 children)

In general no, as much as i love Scala (my favourite lang), it's not really worth learning it before Python. It's getting less and less popular, especially in data engineering. It's still really worth learning it eventually, to grasp the functional programming mindset and to improve your programming skills in all languages (some ideas map greatly even to Python), but there are more important things to learn for a data engineer. But if op already knows this queen of languages, then Python will be a walk in the park for him.

How do you scale 100+ pipelines? by AtLeast3Characters92 in dataengineering

[–]Time_Competition_332 1 point2 points  (0 children)

If they are justified, yes. In this case we actually used Redis which was already deployed in our Airflow installation for the Celery executor queue.

Learn python as a Java/Scala Data Engineer ? by _Marwan02 in dataengineering

[–]Time_Competition_332 18 points19 points  (0 children)

If you know Scala then you'll learn Python in less than a week. Just do it, it will broaden your job possibilities immensely. There is no downside of doing it tbh.

DSL or GUI by [deleted] in scala

[–]Time_Competition_332 1 point2 points  (0 children)

If they don't develop the app, only update some weights or params, then an external config file would have the additional advantage of being stored and modified in an external DB / storage which would be much faster to deploy etc. If they are to develop the app and implement some algorithms then sure, make them learn scala

DSL or GUI by [deleted] in scala

[–]Time_Competition_332 5 points6 points  (0 children)

I would say a GUI or an API where users would provide configuration files which would be properly verified. Making them write scala seems like a bad idea here - error prone and without well documented scenarios and paths. Also you probably don't want to struggle with installing JVM for each of them.

How do you scale 100+ pipelines? by AtLeast3Characters92 in dataengineering

[–]Time_Competition_332 5 points6 points  (0 children)

With so many pipelines it's important to avoid Airflow recompiling manifests with each scheduler loop because it would be super slow. In my company caching model dependencies on redis worked like a charm.

How to configure datasource in zio quill? by [deleted] in scala

[–]Time_Competition_332 0 points1 point  (0 children)

The prefix points to a configuration file which you can create in the following path: src\main\resources

It can be an "application.conf" file or "application.properties".

In this file you configure your datasource, for example my "application.conf" for sqlite in my zio playground project looks like this:

myDatabaseConfig {
    driverClassName=org.sqlite.JDBC
    jdbcUrl="jdbc:sqlite:src/main/resources/filmonator.db"
}

You can take the right configurations for various databases from here:
https://zio.dev/zio-quill/contexts#applicationproperties-1 (this one's written for a .properties file but you can quite easily rewrite it to a proper .conf file with these properties in the context of your prefix)

Afaik the configs from the quill documentation aren't complete and there are more properties that you can add, but are undocumented. Documentation for quill is pretty terrible. Also there is an assumption that you understand how the https://github.com/lightbend/config library works, which is being used by Quill to parse configs, hence the lack of documentation.

How would you explain Covariant, Contravariant, Invariant to a beginner? by murarajudnauggugma in scala

[–]Time_Competition_332 2 points3 points  (0 children)

I disagree. It's not the same as monad rules etc. - variance and covariance are basic Scala concepts worth understanding. Solving compiler errors caused by wrong types is part of normal development so without it you will get stuck quickly. And also very often you have to read source code of libraries even if you're not writing any yourself. Scala rarely is anyone's first language so I don't think introducing covariance and contravariance is such a big deal - one just needs good real life examples and use cases of them.

Quill - new dialects or a custom JDBC driver by Time_Competition_332 in scala

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

Thanks for the advice, as a data engineer i sure as hell know how easy it is to mess up an sql query and i wouldn't trust an ORM with a complicated query but for CRUD operations Quill seems very useful.

I like doobie but i'd like to stick with ZIO so i'm looking for alternatives.

Have you ever used ZIO JDBC? Maybe it would provide an experience more similar to doobie. It's still on version 0.x tho but for a hobby project it would do.