# State of DCP (Disciplined Convex Programming)

**URL:** <https://discourse.julialang.org/t/state-of-dcp-disciplined-convex-programming/131743>\
**Category:** Optimization (Mathematical)\
**Tags:** jump, disciplined-convex-p\
**Created:** [August 20, 2025, 9:25pm UTC](https://discourse.julialang.org/t/state-of-dcp-disciplined-convex-programming/131743 "2025-08-20T21:25:08Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [August 24, 2025, 9:39pm UTC](https://discourse.julialang.org/t/state-of-dcp-disciplined-convex-programming/131743/13 "2025-08-24T21:39:34Z")

</div>

There are a few things I’d aim for if I was starting from scratch.

The first two are essentially “Convex.jl but written with 12 years experience in how to write good Julia packages”:

1. First-class support for `Base.Array` and broadcasting. Currently Convex keeps everything as `AbstractExpr` objects that remember their size. Except in rare cases, these objects do not support Julia broadcasting. So you write `exp(Variable(2))::Convex.AbstractExpr` instead of `x = Variable(2)::Vector{Convex.Variable}` and `exp.(x)::Vector{Convex.AbstractExpr}`
2. Great debugging information to explain how Convex transformed the problem from the user to the conic solver. JuMP has `JuMP.print_active_bridges(model)`, so this would be a layer above that that showed how the nonlinear expressions were lowered to conic constraints.

The stretch goal that Chris and the CVX folks are aiming at is really:

1. Can you provide a rule system for the user to lower nonlinear expressions to known DCP forms. One example is `sqrt(sum_squares(x)) <= 1` is not DCP, even though `norm(x) <= 1` is. I want to be able to say something like `sqrt(sum_squares(_x)) => norm(_x)`. I don’t know what the right approach to this is.

---

_[View the full topic](https://discourse.julialang.org/t/state-of-dcp-disciplined-convex-programming/131743)._
