ionbordian

ionbordian

Hello, it’s not yet another frameworks comparison question.

My specific use case is to create a web app which will have around 20-30 views (with many fields of information); it will need calculations and also report writing (pdf/word export of documents);
I am not interested in an SPA because it will mean to duplicate the huge Model on the front-end, so I’m looking for a solution with Server Side view rendering (even though it means the pages will be constantly reloaded on each change);

I thought that Java Enterprise Edition + JSF will make my life easy in this case. But the syntax, performance and the ‘fresh wave’ of an Elixir/Phoenix app seems also very tempting. I have experience in Java, but I can take some time to learn Elixir/Phoenix.

Basically, will Phoenix be appropriate to build large forms with validation, without me having to reinvent the wheel for each page? (The app won’t need a chat or other real-time features, which I know Elixir supports really well);

I understand the benefits of each framework, but I have to make a decision and I’d appreciate your help.
Thank you.

Showing Posts 1 to 10

aseigo

aseigo

This it shines at.

Where you may have more difficulty is with your desire to export to file formats such as MS Word. There are a few PDF libraries on hex.pm, but for formats such as word processing docs there are fewer options. librex exists, but does file conversion via a local install of libreoffice rather than allow direct generation of documents ala report writers. In this area, Java is going to have far more mature and feature-rich options for you.

If you can live with (or even help improve!) that, Elixir’s other benefits (including, but not limited to, developer satisfaction) make it a very attractive option for such things.

OvermindDL1

OvermindDL1

Eh, I generate docx and so forth by just generating the xml files then zipping them up directly. A good template makes that trivial.

tmbb

tmbb

I remember the time where I’ve once generated cards with coupon codes with by drawing such cards in Inkscape (which produces SVG files), and writing the text I needed to replace between curly brackets ({{var}}) inside Inkscape, of course. Then, I would treat the whole SVG file as a Jinja template, and simple replace the text. After that, I don’t remember if I used Inkscape to export the SVG as PDF again or if I used Qt’s SVG renderer, but the whole idea of writing an SVG template directly in Inkscape was very cool.

joaoevangelista

joaoevangelista

I’ll probably get shot here, but I would choose Java for the libraries it already has IF you don’t have time to study all the workarounds such as generating your own xml for docx. Maybe you’ll need more strange ways to access different databases for generating those reports, maybe even legacy ones, if it is true then integrating Ecto and even pure drivers would cause a lot of pain. CRUD almost all web frameworks handles well. The problem also might come from the calculations, which kind are they? If they are some what heavy such as financial computation then Elixir might not suit good.

But since you want some better developer experience I would recommend Spring Boot with Kotlin, IntelliJ has a superb support for both of them, you get all libraries you need to do the strange things, a nice new syntax and null pointer avoidance from Kotlin.

aseigo

aseigo

This one again :slight_smile:

Honestly, this is not really an issue unless you are really hitting heavy numerics (scientific; ml; transcoding ..) and these days there are libraries with NIFs (natively compiled code) for the heavy lifting for many/most of these needs.

dimitarvp

dimitarvp

You should really open-source that. Elixir is still viewed as fringe tech by many people who are not well informed about its very strong background and making libraries that cover such real-life needs will remedy that false notion.

dimitarvp

dimitarvp

Most good Elixir devs understand that quite well. That’s why NIF bridges to hand-crafted and mega-fast computation libraries exist. Nobody around here is about “everything must be written in Elixir”. It is extremely good in a number of areas but where it is not, we should absolutely reach for another language.

Now that I can agree with. There are a number of huge legacy apps that utilize Oracle and people have been asking here and in SO how to handle those. Others as well.

While I would relentlessly question the value of a niche key-value store over Postgres – especially when the author clearly also wants joins, preloads and a ton of querying of different kinds (which all scream for a RDBMS and not a KV store) – I believe that making Elixir more widely accepted requires for it to be pluggable without much fuss in a legacy project.

peerreynders

peerreynders

A quick Google leads to content like DOCX: A series of XML files - so the recipe is simply:

  • unzip prototype .docx
  • make the necessary substitutions in the XML files
  • write and zip the modified .docx

(PHP Example)
However lots of developers don’t want to have their productivity hampered by low level work like that.

Meanwhile Microsoft much rather lock you into cached data document customizations via the ServerDocument class.

Introduction to Open XML
Introduction to WordprocessingML
Introduction to SpreadsheetML

OvermindDL1

OvermindDL1

Not really much to show about it, I quite literally just made some normal docx and xslx files in office, unzipped them, made them into eex templates, then just render the templates back out with the data and re-zip the contents, it’s really really simple… >.>

Might be worth a blog entry sometime perhaps.

That’s my very job, so I foreign wrap the oracle horrors into postgresql for a singular interface to it (and others). ^.^;

dimitarvp

dimitarvp

I think we got lost in traslation. I did not realize it was that simple and no, I don’t mind “low level” work at all. :077: I very much like making bridges between technologies even if the job is hard and ugly. It’s a passion and I sacrificed money, patience and sleep for it many times.

I realize that now, sorry for wrong assumption. Still, a blog post documenting the steps you took will definitely help people.

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
AstonJ
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
Null-logic-0
What IDE or editor are you using for Elixir development? Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews